OpenFileMapping: GetLastError=2
OpenFileMapping: GetLastError=2
本文关键字:GetLastError OpenFileMapping 更新时间:2023-10-16
我正在尝试在两个进程C#(EXE(和C++(DLL(之间共享内存。 C++ DLL 由 Citrix 接收器进程动态加载。
下面是我的 C# 和 C++ 代码:
private void Test()
{
string data = "Hello";
_memoryMap = MemoryMappedFile.CreateOrOpen("14614C87-8D7F-45FC-8D59-DCBF1715A715", data.Length, MemoryMappedFileAccess.ReadWrite);
var stream = _memoryMap.CreateViewStream();
using (BinaryWriter binReader = new BinaryWriter(stream))
{
binReader.Write(data);
}
}
void readFromMemoryMap()
{
HANDLE hMapObject = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, L"14614C87-8D7F-45FC-8D59-DCBF1715A715");
char buffer[2000];
if (hMapObject == NULL)
{
sprintf(buffer, "OpenFileMapping: GetLastError=%d", GetLastError());
}
char *fileBuffer = (char *)MapViewOfFile(hMapObject, FILE_MAP_ALL_ACCESS, 0, 0, 6);
UnmapViewOfFile(fileBuffer);
CloseHandle(hMapObject);
}
我负责编写和读取对象序列。我的 C# 应用程序的内存映射句柄没有崩溃。我使用具有权限的管理员帐户运行了此代码。
我面临以下错误。谁能帮我解决此错误的情况?
我按照下面的链接解决此问题。
OpenFileMapping ERROR_FILE_NOT_FOUND
尝试在对象名称前面加上 Global\ 前缀,如下所示:https://learn.microsoft.com/en-us/windows/win32/memory/creating-named-shared-memory
相关文章:
- 根据 GetLastError 直接写入磁盘会导致错误代码 5
- 为什么我的 LogError 函数会重置 GetLastError?
- OpenFileMapping: GetLastError=2
- MatMul op 在 tensorflow 中是如何工作的?
- 添加 OP 张量流调试
- cv2有什么区别.StereoSGBM_create() 和 cv2.StereoBM_create() 函数用于 Op
- GetLastError()从FtpPutFile()返回错误6
- (位图)LoadImage() 返回 NULL,GetLastError() 返回 0
- 如何从C++代码运行自定义 GPU tensorflow::op?
- std::p riority_queue::p op什么时候会抛出异常
- GetLastError 在调用 WinHttpOpenRequest 后返回 6
- 将 GetLastError() 转换为带有错误字符串的异常
- 使用 GetLastError() 的真正正确的方法(时间)是什么?
- WinAPI - GetLastError 在通过 COM ATL DLL 调用时始终返回 0
- 为什么捕获std :: Isringstream的RVALUE的OP会失败
- 在Vulkan中重新固定图形管道,保证了No-Op
- [expr.unary.op]/9 似乎暗示"运算符!()' 不能应用于下面的类型 A.但编译器不同意这一点
- 为什么我不能将 op 结果乘以常量特征张量数组
- 不兼容的操作原则到三元op
- 访问自定义OP的输入值时的segmenation故障