我想获得一些支持,如何将下面的代码C转换为C#。我在C中有一个DLL,它具有某些功能,可以转换DLL调用,但是该功能具有一个回调声明,并且无法将此C代码转换为C#。
这是C语言中的回调声明,如下所示:
typedef int(*FunctionPointer)(PTCallBackStructure TCallbackRecord,
BSTR MessageFromDLL, BSTR &MessageToDLL);
这是C代码本身的回调函数-实际上是从DLL调用的:
int test_DLL_Callback(PTCallBackStructure TCallbackRecord, BSTR MessageFromDLL,
BSTR &MessageToDLL)
{
....
return 0;
}
这是DLL函数如何传递给DLL的代码: DLL_Callback = test_DLL_Callback;
PDllCommands = (DllCommands*)malloc((sizeof(DllCommands)));
PDllCommands->CallbackFunction = DLL_Callback;
...
结构PDLLCommands的回调函数只有一项,该结构被传递给DLL。在进行中,从DLL的C代码中调用test_DLL_Callback。
我希望现在我可以澄清我的问题是什么。谢谢你的帮助。
请注意(在那儿提到),委托必须一直活到回调为止,但是如果您不继续引用它,则GC会收集该委托。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句