问题-
我已经创建了 MyInterop.tlb 文件并包含在项目中。 当我在不同的机器上安装设置时,我已经创建了窗口安装程序
CoInitialize(NULL);
IWindowPtr pDotNetCOMPtr;
HRESULT hRes =
pDotNetCOMPtr.CreateInstance(__uuidof(WindowClass));
flag=pDotNetCOMPtr->show ();
CoUninitialize();
发生类未注册问题
最佳答案
需要注册 Com 对象。您可以通过选中 Visual Studio 项目中的“注册 COM 互操作”来执行此操作,如图所示,或者您必须在安装程序运行中注册它。确保你有像你发送的示例链接一样的标题
RegAsm.exe ManagedDLL.dll /tlb:ManagedDLL.tlb /codebase
COM 对象也应该有一个 GUID。这允许注册表正确处理它。
在之前的工作中,这些是我包含的标题。每个正在注册的对象的每个 Guid 都是不同的。:
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.None)]
[Guid("7F2DA4BD-12BF-4EE7-80E7-F85D1F15926C")]
关于c# - 如何从 Visual Studio.NET 或 Visual Studio 2005 中的 native Visual C++ 代码调用托管 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46690344/