我已经声明了 C++/CLI 类如下
namespace testcominterface {
[ComVisible(true)]
[Guid("FFCA805F-8DAB-4AF8-A7B7-B488136E8177")]
public interface class ITestInterface
{
public :
void TestMethod();
};
[ComVisible(true)]
[Guid("E65F4772-54B5-4105-83E5-DCED24ABC815")]
[ClassInterface(ClassInterfaceType::AutoDual)]
[ComDefaultInterface(ITestInterface::typeid)]
public ref class testCoClass : ITestInterface
{
public:
virtual void TestMethod()
{
Console::WriteLine("testCoClass::TestMethod : Test method");
}
};
}
我想通过本机 C++ COM 创建“testCoClass”(通过#import TLB 文件并使用 CoCreateInstance)我总是收到错误“未注册的类”。如果我使用“Regasm.exe”注册程序集,它工作正常,但我不想注册程序集。
我已按照此博客文章http://blogs.msdn.com/b/cheller/archive/2006/08/24/how-to-embed-a-manifest-in-an-assembly-let-me中的步骤进行操作-count-the-ways.aspx将清单嵌入到程序集中,但它不起作用。(请注意,此方法始终适用于 C# 程序集,但这是 C++/CLI 程序集。
我很感激任何建议。