通过命令行编译一个 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?