是否有關於在VBP(Visual Basic項目)文件中使用的鍵/值的任何可用文檔?我試圖更好地理解VBP如何在內部處理引用。是否有任何可用的VBP(Visual Basic 6項目)文件文檔?
例行:
參考= * \∈{BF204980-5E29-4945-AEB5-DDB284C568D3}#1.0#0#.. \ Project1.dll#PROJECT1
是否有關於在VBP(Visual Basic項目)文件中使用的鍵/值的任何可用文檔?我試圖更好地理解VBP如何在內部處理引用。是否有任何可用的VBP(Visual Basic 6項目)文件文檔?
例行:
參考= * \∈{BF204980-5E29-4945-AEB5-DDB284C568D3}#1.0#0#.. \ Project1.dll#PROJECT1
對不起,但我在網上找到的最好的只是一個概述(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對象的(友好)名稱。
引用的語法在[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
此信息都是很好的建議。關鍵是編譯你的dll/ocx的兼容性關閉,然後將該文件複製到CMP文件,並重新編譯,兼容性設置爲二進制,指向CMP文件作爲參考文件(兼容)。如果你因爲任何原因中斷了compat,VB會警告你。但是請記住,您可以更改方法簽名或添加新方法,並且不會在技術上破壞兼容性,但仍然會導致Probs在兼容性方面走在前面,所以在更改方法簽名或添加新方法/屬性等時要小心。 – DarinH 2011-05-24 17:28:15
你非常希望得到答案。 – silentfrost 2011-05-24 18:42:20
很好的答案。也有手冊,雖然它沒有解釋這些參考http://msdn.microsoft.com/en-us/library/aa716294(v=VS.60).aspx – MarkJ 2011-05-24 21:11:34