dll如何与可执行文件通信

编程


你好呀,

我在网站上找不到答案,如果有人知道请澄清,

DLL 和可执行文件在同一台计算机上运行,​​并且 dll 已向可执行文件发送消息以完成该过程(例如:从 dll 加载数据/资源)。

DLL如何调用可执行文件?

问候,
兰吉斯

解决方案3

您可以使用 Mike 所描述的(回调)…但如果这是针对 Windows…我会使用 Windows 消息。 为什么? …因为一旦您掌握了该技术,就可以轻松添加/删除消息,而无需更改 DLL 接口(取决于您是否关心更改 DLL 接口)。

这里有一篇关于使用 MFC 的 Windows 消息的文章,但如果您不使用 MFC,您也可以通过原始 WinAPI 来完成此操作(而且也很容易做到):

[^]

解决方案4

代码是在进程内的 DLL 还是 EXE 中并不重要。 重要的是您有两个必须相互通信的进程。 我假设通信不必使用异步消息传递(消息传递,即:当必须执行通信时两个进程都在运行。

在这种情况下你必须选择并使用IPC机制: Windows进程间通信

所列出的 Windows IPC 机制中的两种最基本的通信方法是管道和套接字。
我个人最喜欢的是套接字,因为:
– 易于移植到任何平台
– 易于在不同的机器上运行进程,并且通信代码仍然相同
– 易于在不同语言编写的程序之间使用它
– 环回通信(当两个端点位于同一台机器上时)在所有主要平台上进行了优化,因此在本地使用套接字与使用管道一样有效

解决方案1

使用回调。

请参阅这篇文章的示例: C++ 中的类型安全回调[^]

解决方案2

你好,

我认为你需要但我不确定

如何加载 dynamyc 链接库

祝你有美好的一天

コメント

タイトルとURLをコピーしました