通过命令行编译一个 VB6 COM DLL 每次都会得到一个不同的 CLSID

Posted

技术标签:

【中文标题】通过命令行编译一个 VB6 COM DLL 每次都会得到一个不同的 CLSID【英文标题】:Compiling a VB6 COM DLL through command line gets a different CLSID each time 【发布时间】:2016-01-08 16:13:34 【问题描述】:

dllproject.vbp 成为一个 DLL VB6 项目。

每次我通过这一行编译:

VB6.EXE /MAKE dllproject.vbp  /outdir somedir

编译器生成一个带有另一个 CLSID 的 dll。为什么?

(编辑)

【问题讨论】:

【参考方案1】:

Found why here.

简而言之,必须激活二进制兼容性。例如,一个好方法是保留 dll 的副本(重命名为 .cmp)并引用此副本以实现版本兼容性(项目 -> [项目名称] 属性....

【讨论】:

如果您要对组件进行任何更改,您也需要阅读this。 谢谢。事实上,我遇到了二进制兼容性问题(忘记了原因),并禁用了它。由于之前是交互编译的,所以没有注意到这个变化,因为DLL编译和释放是手动完成的……现在是脚本,所以问题更明显了。

以上是关于通过命令行编译一个 VB6 COM DLL 每次都会得到一个不同的 CLSID的主要内容,如果未能解决你的问题,请参考以下文章

如何在vb6中注册一个不能用作com互操作的.net DLL?

如何在不通过 COM 的情况下从 VB6 调用 C++ DLL?

VB.net编写的dll,供vb6调用时dll中的函数不可见?

是否可以同时调试 VB6 和 C++ COM dll?

在VB6中编译DLL时“加载DLL时出错”

创建 VB.NET COM DLL