ich erklärt habe C++/CLI-Klasse wie untenCoCreateInstance C++/CLI-Klasse von Native C++
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");
}
};
}
Und ich die "testCoClass" durch native C++ COM erstellt werden soll (von # Import der TLB-Datei und verwendet CoCreateInstance) Ich bekomme immer einen Fehler "Class Not Registered". Wenn ich "Regasm.exe" verwende, um die Assembly zu registrieren, funktioniert es gut, aber ich möchte die Assembly nicht registrieren.
Ich habe die Schritte in diesem Blogpost http://blogs.msdn.com/b/cheller/archive/2006/08/24/how-to-embed-a-manifest-in-an-assembly-let-me-count-the-ways.aspx Embedded Manifest in die Assembly gefolgt, aber es hat nicht funktioniert. (Beachten Sie, dass diese Methode immer mit C# Montagearbeiten, aber dies ist eine C++/CLI Montage.
ich irgendwelche Vorschläge zu schätzen wissen.
Ich habe die Attribute der Schnittstelle und der Klasse als Ihre Vorschläge behoben. Ich hatte die \t \t \t assembly> \t \t dependentAssembly>' Ich habe immer noch den gleichen Fehler. –
Aing
Es hat keinen Sinn, etwas in das Manifest des Servers zu schreiben. Windows kann es nicht lesen, bis die Server-DLL zuerst gefunden wird. Das Ei geht vor das Huhn, es ist der * Kunde *, der das Manifest braucht. Nochmals, gehen Sie nicht dorthin, bis Ihr Server ordnungsgemäß funktioniert, debuggen Sie ein Problem nach dem anderen. –
Ich habe es gerade funktioniert, indem ich mein Client-vcxproj-Projekt so konfiguriert habe, dass die Manifest-Datei nicht eingebettet wird. Dann habe ich manuell myclient.exe erstellt, mit '' Verweis auf den COM-Server-Assemblynamen. Dann musste ich myclient.exe.config mit 'erstellen ' –
Aing