[ad_1]
你好呀,
我在网站上找不到答案,如果有人知道请澄清,
DLL 和可执行文件在同一台计算机上运行,并且 dll 已向可执行文件发送消息以完成该过程(例如:从 dll 加载数据/资源)。
DLL如何调用可执行文件?
问候,
兰吉斯
解决方案3
您可以使用 Mike 所描述的(回调)…但如果这是针对 Windows…我会使用 Windows 消息。 为什么? …因为一旦您掌握了该技术,就可以轻松添加/删除消息,而无需更改 DLL 接口(取决于您是否关心更改 DLL 接口)。
这里有一篇关于使用 MFC 的 Windows 消息的文章,但如果您不使用 MFC,您也可以通过原始 WinAPI 来完成此操作(而且也很容易做到):
[^]
Message Handling and MappingLearn more about: Message Handling and Mapping
解决方案4
代码是在进程内的 DLL 还是 EXE 中并不重要。 重要的是您有两个必须相互通信的进程。 我假设通信不必使用异步消息传递(消息传递,即:当必须执行通信时两个进程都在运行。
在这种情况下你必须选择并使用IPC机制: Windows进程间通信
所列出的 Windows IPC 机制中的两种最基本的通信方法是管道和套接字。
我个人最喜欢的是套接字,因为:
– 易于移植到任何平台
– 易于在不同的机器上运行进程,并且通信代码仍然相同
– 易于在不同语言编写的程序之间使用它
– 环回通信(当两个端点位于同一台机器上时)在所有主要平台上进行了优化,因此在本地使用套接字与使用管道一样有效
解决方案1
使用回调。
请参阅这篇文章的示例: C++ 中的类型安全回调[^]
解决方案2
[ad_2]
コメント