Laden...

C++ Object Pointer aus c++ Object Factory dll in c# nutzen

Erstellt von rollerfreak2 vor 11 Jahren Letzter Beitrag vor 11 Jahren 845 Views
Thema geschlossen
rollerfreak2 Themenstarter:in
916 Beiträge seit 2008
vor 11 Jahren
C++ Object Pointer aus c++ Object Factory dll in c# nutzen

Hallo zusammen,

ich habe eine c++ Dll die eine methode bereit stellt, die mir ein Pointer auf ein object liefert(kein COM). Sehr stark vereinfacht sieht die verwendung dieser dll in c++ so aus!

 
#include DefinitionOfInterfaceClass.h
 
typedef IMyInterface* (*pfnMyObject)();
 
void test()
{
    pfnMyObject pGetObject;
    HMODULE hMod = LoadLibrary("MyCPlusPlus.dll");
    pGetObject = (pfnMyObject*)GetProcAddress(hMod,"GetObjectMethodName");
 
    IMyInterface* pObj = pGetObject();
    pObj->DoSomething();
}  

Diese Dll möchte ich jetzt in c# verwenden.


[DllImport("MyCPlusPlus.dll", EntryPoint = "GetObjectMethodName")]
public static extern IntPtr getObjectInCSharp();  

Bis hier her funktioniert das auch....nach dem Aufruf der "getObjectInCSharp" Methode habe ich einen IntPtr! Soweit so gut, aber wie bekomme ich jetzt aus dem IntPtr meinen Klassenpointer bzw. die Objekte innerhalb der Klasse?

Klasseninterface nachbauen und dieses Interface anstelle des IntPtr beim Import setzen?

Geht dieser Mechanismus überhaupt in c# zu adaptieren?

In der MSDN habe ich nur Beispiele für Strukturen gefunden und da waren es auch keine Pointer auf Strukturen sondern Kopien die von den Methoden geliefert wurden.

Kann jemand helfen?

Again what learned...

Hinweis von talla vor 11 Jahren

[Hinweis] Wie poste ich richtig? Punkt 2.2
Crosspost von http://www.c-plusplus.de/forum/302756

Thema geschlossen