我正在尝试将第三方C ++ DLL与C#应用程序集成。第三方文档说:
“应用程序必须有一个Windows消息循环才能使用API。通过消息循环发送TCP消息......”
我进入C#应用程序是通过一个插件框架,所以它比你的普通WinForms应用程序复杂得多,但是,我不确定我理解MFC消息循环和Threading.Dispatcher发出的循环之间的映射是推荐的here和here
如果C#完全模糊了这一点,我想我可以在CLI层运行一个消息循环,并轮询来自C#插件的消息。
我甚至不肯定这是问题;但是我的CLI层工作在一个简单的WinForms测试应用程序中,但似乎没有在插件生态系统中捕获回调。
感谢S.O社区!
更新: 嗯,仔细看看上面的两个链接。我实际上并不相信他们是密切相关的。
添加
Application.Run();
到我运行CLI层的线程确实会引发回调。但随后崩溃,或引发访问冲突(我的通用捕获(异常)永远不会捕获...)。令人沮丧的是this is the same error I get,但评论只是承认这种情况发生了。
我无权访问表单来获取句柄或应用程序上下文。我发现的大多数答案都是针对COM接口而不是(我确实尝试添加STAThread属性,但无济于事。
是否有另一个调用会将Windows消息循环一次性调用,这样我可以把它放在我自己的循环中?