【发布时间】:2022-01-22 22:38:29
【问题描述】:
我在 Visual Studio 中使用 C++ 编程。我有一个项目是服务器,第二个项目是一个可以上传到服务器的DLL,为了让我通过DLL发送一些特殊的命令,我需要从服务器传递一个函数。我尝试以这种方式从服务器导出函数
extern "C" __declspec(dllexport) void send_peer_command(Peer* peer, const std::string& lua_command);
但它不起作用。所以我需要将函数从 exe 文件导出到 C++ 上的 dll 项目。我尝试了很多方法,但我没有成功,请告诉我该怎么做。我知道这不是最好的解决方案,但我迫切需要这样做。我知道有办法做到这一点,但是这样的例子很少,只要你能举个简单的例子,我就需要这些了
【问题讨论】:
-
@drescherjm 这不是真的。你可以并且它被记录在案。 DLL 和 EXE 仅在名称、典型用例和操作系统行为上有所不同,它们是 PEXE 格式的文件。实际上,在调试模式下,本机 MS 编译器确实导出了一些用于调试目的的函数。有几个 Windows 模块同时是 dll、控制台应用程序和服务。还有这个:codeguru.com/windows/…
-
您确定不能为您的任务使用共享内存、进程间同步、IPC 或 COM 吗?从技术上讲,是的,它们是通过最低级别的导出/导入实现的,但是您已经开发了通信基础设施。
-
@Swift - Friday Pie thx you!您的链接对我有帮助!