gpt4 book ai didi

c++ - 在 Windows 下使用共享内存。如何传递不同的数据

转载 作者:可可西里 更新时间:2023-11-01 09:39:28 25 4
gpt4 key购买 nike

我目前尝试使用 Windows CreateFileMapping 实现一些进程间通信机制。我知道我需要先用 CreateFileMapping 创建一个文件映射对象,然后用 MapViewOfFile 创建一个指向实际数据的指针。然后,该示例使用 CopyMemory 将数据放入映射文件。

在我的应用程序中,我有一个图像缓冲区(1 MB 大),我想将其发送到另一个进程。所以现在我查询一个指向图像的指针,然后将整个图像缓冲区复制到映射文件中。但我想知道这是否真的有必要。难道不能只在共享内存中复制指向图像缓冲区数据的实际指针吗?我尝试了一下,但没有成功。

最佳答案

不同的进程有不同的地址空间。如果您将一个进程中的有效指针传递给另一个进程,它可能会指向第二个进程中的随机数据。因此,您必须复制所有数据。

关于c++ - 在 Windows 下使用共享内存。如何传递不同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/697664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com