Hallo
ich möchte eine Funktion aus einer älteren C++ dll aufrufen und habe ein paar Probleme mit den Callbacks.
ConnectDMS(TCHAR *lpszPipename,client *cl,int (*fun_ptr)(comm *msg));
--->
//ConnectDMS(TCHAR *lpszPipename,client *cl,int (*fun_ptr)(comm *msg));
[DllImport("c:\\promos13\\bin\\pmospipe.dll", EntryPoint = "ConnectDMS", CharSet=CharSet.Ansi, SetLastError=true, ExactSpelling=false,CallingConvention=CallingConvention.Cdecl)]
public static extern unsafe int ConnectDMS(string strname, ref client cldms, _CSharp_Klassenentwicklung.Form1.Callbacks cb);
Der letzte Parameter gibt bei mir nun die Funktion (mit delegate) an, die bei Message ausgeführt werden soll. Übergabe für diese Funktion ist *msg.
Die Struktur für *msg habe ich nach Doku richtig angelegt.
In der Doku der dll-Funktionen steht, das die Funktion mit cdecl angelegt ist und deswegen vorsicht geboten sei in anderen sprachen neben c++.
Problem ist nun, das die Messages nicht ankommen, also das Programm nicht reagiert - und das rufende (also message sendende) Programm hängen bleibt solange mein Programm verbunden ist.
Vielleicht hat jemand einen Hinweis für mich -> bzw. verweis im Internet wo das Thema behandelt wird. Habe mich schon umgesehen aber nicht wirklich etwas gefunden.