gpt4 book ai didi

c# - 如何在 C# 应用程序中访问这种类型的 C++ 共享内存?

转载 作者:行者123 更新时间:2023-11-30 02:37:10 24 4
gpt4 key购买 nike

我有一些来自另一个程序员的代码,这些代码在我认为是页面文件的地方使用/创建共享内存。正在使用的代码是:

HANDLE hMapObject;
HWND hWnd;
float *MapView;
float MapScale[10];
BOOL MapError, MapViewError;
DWORD LastMapError; // shared memory file init
hMapObject = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, "GInterface");
if (!hMapObject)
{
hMapObject = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof (MapScale), "GInterface");
if (!hMapObject)
{
MapError = true;
LastMapError = GetLastError();
}
}
MapView = (float*)MapViewOfFile(hMapObject, FILE_MAP_ALL_ACCESS, 0, 0, 0);
if (!MapView)
{
MapViewError = true;
LastMapError = GetLastError();
}

我查看了 C# 的共享内存内容,但它似乎与我这里的内容没有任何关系。我的 C# 程序只需要从共享内存中读取,如果有帮助则不需要写入。

提前致谢!

最佳答案

您应该能够在 C# 中使用

打开内存映射文件
var mappedFile = System.IO.MemoryMappedFiles.MemoryMappedFile.OpenExisting(MemoryMappedFileRights.Read, "GInterface");

using (Stream view = mappedFile.CreateViewStream())
{
//read the stream here.
}

关于c# - 如何在 C# 应用程序中访问这种类型的 C++ 共享内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31926255/

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