2011-05-24 70 views

回答

2

對不起,但我在網上找到的最好的只是一個概述(http://www.securitypronews.com/it/applicationdevelopment/spn-19-20020115VisualBasicProjectFilesStructure.html)。

另請注意,VB窗體中使用的ActiveX控件將在* .frm文件中具有引用條目。

我猜你正在開發ActiveX項目(無論是EXE,DLL或OCX)。如果這是您的目標,這是我的建議:

(1)瞭解二進制兼容性設置。

(2)最好使用.cmp作爲後綴的參考可執行文件,如Project1.dll.cmp。當你查看二進制兼容性時,你會明白我的意思。

(3)在VirtualPC中開發你的VB6 ActiveX工程; VB6 ActiveX開發在Windows註冊表上造成了很多磨損。 (4)當VB有理由找到ActiveX對象時,Reference=設置中DLL/EXE/OCX的文件路徑將會改變;它會隨着它在註冊表中找到的任何東西(最新註冊勝利)。此外,還有「升級ActiveX控件」設置可以進行更改的項目屬性。 (5)除了可以通過適當的二進制兼容性管理達到的程度外,您幾乎不能控制VB6將生成的GUID或類型庫。


這裏是我所知道的 - 從你上面的例子,

BF204980-5E29-4945-AEB5-DDB284C568D3表示ActiveX對象的GUID。

1.0指示ActiveX對象的版本。

0表示......我不知道。

..\Project1.dll是ActiveX DLL((或)所在位置的(相對)路徑。

Project1是ActiveX對象的(友好)名稱。

+0

此信息都是很好的建議。關鍵是編譯你的dll/ocx的兼容性關閉,然後將該文件複製到CMP文件,並重新編譯,兼容性設置爲二進制,指向CMP文件作爲參考文件(兼容)。如果你因爲任何原因中斷了compat,VB會警告你。但是請記住,您可以更改方法簽名或添加新方法,並且不會在技術上破壞兼容性,但仍然會導致Probs在兼容性方面走在前面,所以在更改方法簽名或添加新方法/屬性等時要小心。 – DarinH 2011-05-24 17:28:15

+0

你非常希望得到答案。 – silentfrost 2011-05-24 18:42:20

+0

很好的答案。也有手冊,雖然它沒有解釋這些參考http://msdn.microsoft.com/en-us/library/aa716294(v=VS.60).aspx – MarkJ 2011-05-24 21:11:34

6

引用的語法在[MS-OVBA]描述:

LibidReference  = "*\" LibidReferenceKind LibidGuid 
        "#" LibidMajorVersion "." LibidMinorVersion 
        "#" LibidLcid 
        "#" LibidPath 
        "#" LibidRegName 

<LibidReferenceKind>: 

%x47 (G) <LibidPath> specifies a Windows file path. 

%x48 (H) <LibidPath> specifies a Macintosh path.  

<LibidGuid>: The GUID of the Automation type library. 

<MajorVersion>: An unsigned integer that specifies the 
major version of the Automation type library. 

<LibidMinorVersion>: An unsigned integer that specifies the 
minor version of the Automation type library. 

<LibidLcid>: The LCID of the Automation type library. 

<LibidPath>: The path to the Automation type library. 

<LibidRegName>: The Automation type library’s display name 
+2

也是在Hex中(我有一個DLL是1e.0) – RoboJ1M 2012-07-16 14:05:06