Windows中利用共享内存来实现不同进程间的通信
2021-01-30 04:15
标签:sts 通信 ast 讲解 详细 技术 csdn 游戏 mem Windows中利用共享内存来实现不同进程间的通信 一、msdn详细介绍 https://docs.microsoft.com/zh-cn/windows/win32/memory/sharing-files-and-memory
二、实现思路讲解: 在A进程,我们通过 CreateFileMapping()函数来创建一个文件映射对象(使用 INVAILD_HANDLE_VALUE 来不指定文件句柄),然后调用MapFileOfView()函数来将文件映射对象映射到本进程中,利用copymemory来进行内存读写。 在B进程,我们通过 OpenFileMapping()来打开,然后调用MapFileOfView()函数来将文件映射对象映射到本进程中,利用copymemory来进行内存读写。 三、应用场景: 两进程间的数据交换,比如,我们将游戏外挂代码注入到Game.exe进程中,我们另起一个外挂控制台.exe来控制外挂,此时我们就可以使用共享内存,Game.exe开辟一线程,循环读取该内存数据并标记,而console.exe则负责将用户的指令传入到内存中,这样就实现交互了。 四、注意事项: 五、源代码: 参考下面博客,注意其在B进程也调用CreateFileMapping()来创建一个已经存在的内核对象,此时,其会返回该内核对象(并不会出错,同时GetLastError()函数返回ERROR_ALREADY_EXISTS值。 https://blog.csdn.net/stpeace/article/details/39534361 Windows中利用共享内存来实现不同进程间的通信 标签:sts 通信 ast 讲解 详细 技术 csdn 游戏 mem 原文地址:https://www.cnblogs.com/onetrainee/p/11667416.html
文章标题:Windows中利用共享内存来实现不同进程间的通信
文章链接:http://soscw.com/index.php/essay/48989.html