是否有关于在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