在.NET中使用C回调函数

我正在使用.NET内部的C库这一切都很好用。 但我遇到了回调函数的麻烦。

我有这个C代码:

Bool someCallBack(const char *name, int reason) { //some logic here return True; } int main(int argc, char **argv){ SetCallback(someCallBack) } 

在头文件中,SetCallback定义为:

 typedef Bool (*CallbackType)(const char *name, int reason); #define DLL_USE __declspec(dllimport) DLL_USE void SetCallback(CallbackType callBack); 

当我执行一个触发回调的函数时,这一切都在C中正常工作。

现在我想从.NET中做到这一点

在.NET中我有这个代码

  _ Public Shared Sub SetCallback(ByVal callBack As CallbackType) End Sub Delegate Function CallbackType(ByVal name As StringBuilder, ByVal reason As Integer) As Boolean Private Function TEST(ByVal name As StringBuilder, ByVal reason As Integer) As Boolean Debug.WriteLine("Hello Callback") Return True End Function SetCallback(New CallbackType(AddressOf TEST)) 

当我现在执行触发回调的函数时,永远不会触发回调函数。

这是互操作回调函数的正确方法吗? 或者还有什么可能是错的。