У меня большая проблема. У меня есть приложение Delphi5, которое вызывает C # DLL. Я хочу вызвать функцию из моего C # DLL, который нуждается в указателе на процедуру Delphi в качестве входного параметра. В этой функции c # процедура delphi вызывается впоследствии.
Я попытался объявить указатель функции на стороне c #, используя IntPtr:
ourFunction(IntPtr fct){
...
helpFct = (OurType)Marshal.GetDelegateForFunctionPointer(fct, typeof(OurType));
...
}
Если я вызываю функцию из c #, все работает нормально. Но если я хочу вызвать его из Delphi (с процедурой delphi в качестве входного параметра), он вылетает, не давая мне никакой информации об ошибке.
вот мой код delphi:
hBuffer : THandle;
buffer : PInteger;
...
hBuffer:=GlobalAlloc(GMEM_fixed,SizeOf(Integer));
buffer:=GlobalLock(hBuffer);
buffer := Addr(AddDelphi);
intfRef.ourFunction(buffer^);
Кто-нибудь сталкивался с такими проблемами или какие-то идеи, как это может работать?
спасибо
Stefan