Ich konvertiere C++ in C++/CLI und möchte einige verwaltete Klassen als COM-Objekte verfügbar machen. In C# war es einfach und die Einstellung [ComVisible] & erbte von der Schnittstelle (auch ComVisible) hat den Job gemacht. Allerdings C++ - Projekt erstellen als C++/CLI exportiert DllRegisterServer nicht.ComVisible in C++/CLI
Hier ist ein Beispielprojekt (gestartet von CLR Console Application Projekt in VS 2008).
#include "stdafx.h"
using namespace System;
using namespace System::Runtime::InteropServices;
[ComVisible(true)]
[Guid("E3CF8A18-E4A0-4bc3-894E-E9C8648DC1F0")]
[InterfaceType(ComInterfaceType::InterfaceIsDual)]
public interface class ITestInterface
{
void TestMethod();
};
[ComVisible(true)]
[Guid("1514adf6-7cb0-4561-9fbb-b75c0467149b")]
public ref class CliComClass : ITestInterface
{
public:
virtual void TestMethod()
{
}
};
int main(array<System::String ^> ^args)
{
Console::WriteLine(L"Hello World");
return 0;
}
Wenn ich regsvr32 auf Ausgabe .exe ausführen, habe ich Fehler, dass DllRegisterServer wurde nicht gefunden. Ich habe Google für etwas Hilfe versucht, aber ohne Erfolg.
Vielen Dank für Ihre Hilfe Shay –