C を使用して別の .exe から .exe ファイルを起動する方法
多くのプログラマーは、内部から .exe ファイルを起動するという課題に直面しています。 C アプリケーション内の別の .exe ファイル。これは、ヘルパー アプリケーションを開いたり、外部プロセスを開始したりするなど、さまざまなタスクに役立つ機能です。
問題
ファイルを開こうとするときによくある間違い.exe ファイルは system() 関数を使用しています。この方法は簡単そうに見えますが、リソース消費量の多さ、潜在的なセキュリティ リスク、ウイルス対策プログラムとの互換性の問題など、いくつかの欠点があります。
解決策: CreateProcess()
より信頼性が高く効率的なアプローチは、CreateProcess() 関数を使用することです。この関数を使用すると、新しいプロセスを作成し、指定された .exe ファイルを実行できます。
サンプル コード
ここでは、CreateProcess() を使用してプロセスを開く方法の例を示します。 .exe ファイル:
<code class="cpp">#include <windows.h> void startup(const char* lpApplicationName) { // Structures for process and startup information STARTUPINFO si = { sizeof(si) }; PROCESS_INFORMATION pi = { 0 }; // Create the process BOOL success = CreateProcess( lpApplicationName, NULL, // Command line arguments NULL, // Process handle not inheritable NULL, // Thread handle not inheritable FALSE, // Set handle inheritance to FALSE 0, // No creation flags NULL, // Use parent's environment block NULL, // Use parent's starting directory &si, &pi ); // If process creation failed, handle the error if (!success) { DWORD error = GetLastError(); // Handle the error here } // Close process and thread handles CloseHandle(pi.hProcess); CloseHandle(pi.hThread); }</code>
エラーの処理
CreateProcess() 関数は、成功した場合は TRUE を返し、そうでない場合は FALSE を返します。失敗した場合は、GetLastError() 関数を使用してエラー コードを取得できます。
トラブルシューティング
このメソッドの使用中にエラーが発生した場合は、次のことを確認してください。
以上がC を使用して 1 つの .exe ファイルを別の .exe から起動する方法 : CreateProcess() 以降のガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。