是否有关于VBP(Visual Basic项目)文件中使用的键/值的可用文档?我正在努力更好地理解VBP如何在内部处理引用。
示例行:
参考= * \∈{BF204980-5E29-4945-AEB5-DDB284C568D3}#1.0#0#.. \ Project1.dll#PROJECT1
答案 0 :(得分:6)
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
答案 1 :(得分:3)
很抱歉,我在网上找到的最好的只是概述(http://www.securitypronews.com/it/applicationdevelopment/spn-19-20020115VisualBasicProjectFilesStructure.html)。
另请注意,VB Forms中使用的ActiveX控件将在* .frm文件中包含引用条目。
我猜你正在寻找开发ActiveX项目(无论是EXE,DLL还是OCX)。如果这是你的目标,这是我的建议:
(1)了解二进制兼容性设置。
(2)优良作法是使用.cmp
为Project1.dll.cmp
添加引用可执行文件,例如Reference=
。当你查找二进制兼容性时,你会知道我的意思。
(3)在VirtualPC内部开发VB6 ActiveX项目; VB6 ActiveX开发给Windows注册表带来了很多磨损。
(4)当VB有理由找到ActiveX对象时,BF204980-5E29-4945-AEB5-DDB284C568D3
设置中DLL / EXE / OCX的文件路径将发生变化;它将与它在注册表中找到的任何东西一起使用(最新的注册胜利)。此外,还有“升级ActiveX控件”设置可以进行更改的项目属性。
(5)除了通过适当的二进制兼容性管理可以达到的程度之外,您几乎无法控制VB6将生成的GUID或类型库。
以下是我所知道的 - 从上面的例子中可以看出
1.0
表示ActiveX对象的GUID。
0
表示ActiveX对象的版本。
..\Project1.dll
表示......我不知道。
Project1
是ActiveX DLL(或曾经)所在的(相对)路径。
{{1}}是ActiveX对象的(友好)名称。