对于几乎相同的问题,我已经看到了一些答案,但是没有 C# 代码可以帮助我理解。
我有一个注入内存的 C++ .DLL 文件。虽然,此 DLL 只是从应用程序中获取信息,并从 C# .exe 中获取信息。
C# exe 信息每秒都会变化,而 C++ 信息只会变化一次或两次。
如何在两个正在运行的应用程序之间创建共享变量,以及如何读取/写入它?
谢谢!
如果您想构建一个可靠的解决方案,您应该使用以下内容:
其他类型的交互也是可能的,但我不鼓励使用它们。这些附加类型并不简单,也没有明确定义,包含警告等。上面的 3 种方法允许构建复杂的应用程序。
要调用 C++ 函数,请添加到您的程序集中:
[DllImport("User32.dll")]
static extern Boolean MessageBeep(UInt32 beepType);
这告诉 User32 具有MessageBeep
您要调用的入口点。之后,您可以将其用作任何其他功能:
MessageBeep(0);
以类似的方式,您可以GetProcAddress
在自己的 DLL 中调用或任何其他入口点。
我将使用命名管道,这样两个进程就可以轻松通信!(C# 服务器和 C++ 客户端)
感谢大家的帮助!