Laden...

ImportDll -> Callback

Erstellt von et-thomas vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.453 Views
E
et-thomas Themenstarter:in
7 Beiträge seit 2005
vor 18 Jahren
ImportDll -> Callback

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.