需要在 DLL 中进行更改。该DLL最初是用VB6编写的(不是我编写的),源代码丢失了。
它的功能非常简单,所以我从头开始重新创建它,但我只能访问 VB Express 2008。
我首先将其创建为普通 DLL,然后意识到它必须是 COM DLL。幸运的是,一篇优秀的文章位于http://www.codeproject.com/KB/COM/nettocom.aspx告诉我怎么做。
但是,我对 GUID 一无所知...
我是否应该使用与原始 DLL 相同的 GUID?有什么区别吗?
编辑:既然它是一个 COM DLL,那么它真的很重要吗?它是由 Active X 控件调用的,而且我在网页中看不到 GUI 的任何引用...(但我只是一个 n00b,所以我知道什么?;-)
最佳答案
如果您希望此库直接替换原始库,并且它完全二进制兼容(所有接口(interface)均不变) - 那么是的,您应该对类 id 和接口(interface) id 使用相同的 GUID。如果您不这样做,原始库的用户将无法在不重新编译其程序的情况下使用您的库。
请注意,二进制兼容性是重用 GUID 的必要条件。如果你破坏了任何接口(interface) - 更改它的 id 和实现它的类的 id 并重新编译客户端。
关于visual-studio - 重新创建 COM DLL,我需要担心 GUID 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3624062/