Window 7上的ATL COM DLL注册无法更新CLSID节,但TypeLib可以工作



我们正在进行ATL COM DLL迁移项目,该项目将代码从VC++6迁移到VC++10,而对象映射未能加载

这与swapnil_shinde此处

DLL显示为已成功注册,并显示在typelib中,但不显示在CLSID现有代码在Window XP上与VC6配合使用效果良好,但在Window 7上与VC10配合使用效果不佳。

注册是使用VC10中atlbase.h的DLLRegisterServer的公平标准。

有人知道吗?

我们认为stackoverflow社区更活跃,知识更丰富。我们遗漏了任何其他信息,请询问,我们也会提供。

非常感谢。

编辑:我以管理员身份运行,在32位窗口7上测试32位应用程序。我已经搜索了整个注册表的CLSID仍然找不到它。

请尝试使用OBJECT_ENTRY_AUTO宏注册对象。在每个对象的头中,在类声明之后放置对条目的引用,例如:

class CMyObject { ... class decl ... };
OBJECT_ENTRY_AUTO(__uuidof(MyObject), CMyObject)

如果这不起作用,您需要通过调试器运行它(使用regsvr32作为EXE),并观察DllRegisterServer中发生的情况。

相关内容

  • 没有找到相关文章

最新更新