是否有一个简单的示例说明如何将消息从不安全回调传递到托管代码?
我有一个专有的 dll,它接收一些包装在结构中的消息,所有消息都进入回调函数。
使用示例如下,但它也调用了不安全的代码。我想将消息传递到我的所有托管代码的应用程序中。
*PS 我没有互操作或不安全代码方面的经验。我在 8 年前曾使用 C++ 进行开发,但对那个噩梦般的时代几乎不记得了 :)
PPS 该应用程序加载得非常糟糕,最初的开发人员声称它每秒处理 200 万条消息。我需要一个最有效的解决方案。*
static unsafe int OnCoreCallback(IntPtr pSys, IntPtr pMsg)
{
// Alias structure pointers to the pointers passed in.
CoreSystem* pCoreSys = (CoreSystem*)pSys;
CoreMessage* pCoreMsg = (CoreMessage*)pMsg;
// message handler function.
if (pCoreMsg->MessageType == Core.MSG_STATUS)
OnCoreStatus(pCoreSys, pCoreMsg);
// Continue running
return (int)Core.CALLBACKRETURN_CONTINUE;
}
谢谢你。