問題タブ [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 に渡す方法がわかりませんでした。

さて、Mapping を開けない理由がわかりません。Windowsはおそらく私を超えており、方法がわかりません

メッセージを読みたいメモリを見つけるためにシステムによって認識されるはずです。

プログラム全体は、1 つのプロセスのみの実行をロックすることになっています。値が「NEW」の「SO2」という名前のシステム変数がある場合、新しいプロセスは前のプロセスの実行を停止し、自分自身のためにプログラムのロックを続行する必要があります。
ロックメカニズムはミューテックスを使用しており、以前のプロセス ID を見つけるために、現在のプロセス ID をメモリに保存し、次のプロセスがフォームを読み取って、sys var が「NEW」になったときにプロセス ID を閉じる必要がありました。
クレイジーなことは何もありません。これらすべてを Linux で 1 日で完了しましたが、Windows が私を殺しています。

助けてください

誰かが興味を持っているなら、主なものがあります: