是否有关于 VBP(Visual Basic 项目)文件中使用的键/值的任何可用文档?我试图更好地理解 VBP 如何在内部处理引用。
示例行:
参考=*\G{BF204980-5E29-4945-AEB5-DDB284C568D3}#1.0#0#..\Project1.dll#Project1
是否有关于 VBP(Visual Basic 项目)文件中使用的键/值的任何可用文档?我试图更好地理解 VBP 如何在内部处理引用。
示例行:
参考=*\G{BF204980-5E29-4945-AEB5-DDB284C568D3}#1.0#0#..\Project1.dll#Project1
[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
对不起,但我在网上找到的最好的只是一个概述(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 注册表进行了大量磨损。
Reference=
(4)当VB有理由定位ActiveX对象时,设置中DLL/EXE/OCX的文件路径会发生变化;它将与在注册表中找到的任何内容一起使用(最新的注册获胜)。此外,还有“升级 ActiveX 控件”设置可以进行更改的项目属性。
(5) 您几乎无法控制 VB6 将生成的 GUID 或类型库,除非您可以通过适当的二进制兼容性管理来实现。
这就是我所知道的 - 从你上面的例子中,
表示 ActiveX 对象的BF204980-5E29-4945-AEB5-DDB284C568D3
GUID。
指示 ActiveX 对象的1.0
版本。
表示...我0
不知道。
这..\Project1.dll
是 ActiveX DLL 所在(或曾经)所在位置的(相对)路径。
Project1
是 ActiveX 对象的(友好的)名称。