如何在DLL之间发送消息
我正在创建具有以下特征的应用程序:如何在DLL之间发送消息,dll,messaging,Dll,Messaging,我正在创建具有以下特征的应用程序: 一种基于对话框的GUI,使用dll的n个实例(我们称之为mainLib) mainLibdll使用另一个dll(我们称之为commManager)来管理与另一个应用程序的TCP通信 我的问题是,如何让commManager通知mainLib它收到的某些消息 我想类似于PostThreadMessage()的东西可能是解决方案,但是如何解决呢 我是否在dll中实现它?据推测,commManager在它自己的线程上运行。mainLib需要创建一个消息队列,如下
- 一种基于对话框的GUI,使用dll的n个实例(我们称之为
)mainLib
dll使用另一个dll(我们称之为mainLib
)来管理与另一个应用程序的TCP通信commManager
commManager
通知mainLib
它收到的某些消息
我想类似于PostThreadMessage()
的东西可能是解决方案,但是如何解决呢
我是否在dll中实现它?据推测,commManager在它自己的线程上运行。mainLib需要创建一个消息队列,如下所述。当mainLib创建commManager时,它必须将其线程id传递给它
如果您想要阻塞,另一个选项是使用回调。让mainLib向commManager传递一个函数指针。PeekMessage函数不是要阻止dll执行吗?实际上mainLib和commManager都在线程中运行。。。mainLib一直在进行计算,commManager传递控制消息,所以我不想阻止执行。。。谢谢你的帮助!文章的第2行:“它在不等待线程处理消息的情况下返回。”这在PostThreadMessage中。我看到了。我的问题是接收消息…mainLib可以调用PeekMessage,这是非阻塞的,以查看是否有消息。或者,它可以调用GetMessage,它将阻塞该消息,直到消息可用为止。