このガイドでは、別の C 実行可能ファイル内から実行可能ファイル (.exe) を開く方法を説明します。
解決策を詳しく調べる前に、system() 関数を使用する危険性を強調することが重要です。 System() にはいくつかの欠点があります。
system() の場合は、CreateProcess() 関数を使用することをお勧めします。この機能を使用すると、実行可能ファイルを起動して、独立したプロセスを作成できます。
#include <windows.h> VOID startup(LPCTSTR lpApplicationName) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); CreateProcess( lpApplicationName, // executable path argv[1], // command line NULL, // process handle not inheritable NULL, // thread handle not inheritable FALSE, // no handle inheritance 0, // no creation flags NULL, // parent's environment block NULL, // parent's starting directory &si, // STARTUPINFO structure &pi // PROCESS_INFORMATION structure ); // Close process and thread handles. CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); }
発生したエラーは、完全なファイルを指定しなかったことが原因である可能性があります。実行可能ファイルのパス。ファイル名を含む完全なパスを必ず指定してください。
以上がC で実行可能ファイルを安全に起動する方法 : CreateProcess() が最良の選択である理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。