質問: ハンドルがオープンされているファイルを実行する(C ++ winapi) 私は、C + +アプリケーションのリソースとしてexeファイルを含めると私はそれを実行する必要がありますが、私はそれがユーザーがそれをコピーできないように多くのアクセスを制限する必要があります。 外部プログラムがアクセスできないようにハンドルを開いたままにする必要があります。また、FILE_FLAG_DELETE_ON_CLOSEをフラグとして使用したため、アプリケーションが強制終了された場合は削除されます。 しかし、私はそれをCreateProcess()またはWinExec()で実行することはできません。 私はそれが奇妙に聞こえることは知っていますが、私には良い理由があります.DLL注射の不正行為からゲームの実行ファイルを保護する必要があります。私にはそのexeのコードはありません。
回答: ファイル全体をロックすることはできないので、 `LockFile` で非常に小さな部分をロックします。 Windowsが使用しないバイト範囲を見つける必要があります。これを達成するには、EXEにダミーリソースを追加します。 (これはソースコードを必要としません)。