我有一些非託管的C++動態庫和C#GUI應用程序,使用它。我想通過某些庫提供的方法中的參數傳遞迴調。是否有可能將回調傳遞給C#中的非託管C++方法。從C#傳遞迴調參數到非託管C++
// unmanaged C++
typedef uint8_t (__stdcall *SomeCallback)();
MYDLL_API uint8_t someMethod(SomeCallback cb);
我想以這種方式來使用庫:
// C# part
public delegate Byte SomeDelegate();
[DllImport("mylibraryname.dll")]
public static extern Byte someMethod(ref SomeDelegate pDelegate);
// actuak callback
Byte myCallback() {
// some code
}
...
// call unmanaged passing callback
static void Main(string[] args) {
someMethod(myCallback);
}
我收到錯誤的編譯:
cannot convert from 'method group' to 'ref SomeDelegate
我完全錯了我的做法?
爲什麼在你的extern方法中回調ref? – Dirk