如何在Windows调用的DLL和主应用程序之间进行通信

Howto communicate between DLL called by Windows and main application?

本文关键字:应用程序 之间 通信 DLL Windows 调用      更新时间:2023-10-16

我正在尝试将SNMP代理集成到用本机C++编写的Windows应用程序中。

要使此代理成为Windows SNMP代理的子代理,必须编写一个DLL,用于导出由Windows SNMP服务调用的某些例程。到目前为止,一切进展顺利。

现在,此 DLL 需要从应用程序获取实际信息。我的第一个想法是让应用程序和 DLL 使用双方都访问的共享内存块,但这会使信息总是过时,最好运行一些代码来获取最新值当 SNMP 请求进来时。双方将读取和写入信息。

该应用程序已经具有基于 TCP 的控制台接口,但对于来自 SNMP 客户端的非常频繁的请求,连接、查询、断开连接可能有点重。

我可以选择哪些选项让 DLL 直接与应用程序通信?

命名管道非常容易处理,不会干扰防火墙,也不需要额外的同步(就像共享内存那样)。有关详细信息,请参阅 MSDN