【发布时间】:2014-03-08 15:39:51
【问题描述】:
我想获得一些支持,如何将下面的代码转换为 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。
我希望现在我可以澄清我的问题是什么。感谢您的帮助。
【问题讨论】:
-
这个问题似乎离题了,因为它缺乏足够的信息来诊断问题。更详细地描述您的问题或在问题本身中包含一个最小示例。
-
如上所述。我想在 C# 中有这段代码,尤其是回调相关的部分。
-
我不认为关于翻译的问题是题外话,但我投票结束,因为仅仅要求人们为你翻译一段很长的代码并不真正符合 SO。
-
我已经让我的问题更加具体,但是我认为其他人正在使用更长的代码 sn-ps。谢谢。