问题标签 [file-mapping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
69 浏览

c++ - WINAPI Cpp - OpenFileMapping 失败并出现错误 (2) ERROR_FILE_NOT_FOUND

我正在尝试使用 WinApi 来 CreateFileMapping、MapViewOfFile 和 CopyMemory。它没有向我显示错误,并且缓冲区正在与我的 PID 一起提交

...但是从内存中读取

尝试打开映射时出现系统错误 (2)。

这些函数的代码来自 https://docs.microsoft.com/en-us/windows/win32/memory/creating-named-shared-memory 我唯一改变的是

代替

其中 t_pid 只是一个 const char *,因为我厌倦了 Windows TCHAR 类型,而且我不知道如何将 DWORD ProcessID 转换为 TCHAR 以将其传递给 memcopy。

好吧,我不知道为什么我无法打开映射。Windows 可能超出了我的范围,我不知道如何

应该被系统识别以找到我想从中读取消息的内存。

整个程序应该只锁定一个进程的执行,如果有一个名为“SO2”的系统变量值为“NEW”,新进程应该停止执行前一个进程并继续为自己锁定程序。
锁定机制是使用互斥锁并找到以前的进程 ID,我希望将当前进程 ID 保存在内存中,以便下一个进程读取它的形式,当 sys var 为“新”时关闭它。
没什么疯狂的。我在一天之内就在 Linux 中完成了所有这些工作,但 Windows 正在扼杀我。

请帮忙

如果有人感兴趣,主要是: