從 C 程式中開啟執行檔
您有時可能會發現自己需要從自己的 C 應用程式執行外部程式。雖然使用 system() 似乎是一種簡單的方法,但它會帶來一定的風險和限制。本文探討了使用 CreateProcess() 函數的更可靠方法。
建立新進程
CreateProcess() 函數允許您啟動一個新進程並擁有它獨立於您的呼叫應用程式運行。這是一個範例實作:
<code class="cpp">#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, argv[1], NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ); CloseHandle( pi.hProcess ); CloseHandle( pi.hThread ); }</code>
此函數將可執行檔的路徑作為參數並為其建立一個新進程。然後該進程獨立運作。
有效地使用 CreateProcess()
在範例程式碼中,argv[1] 參數應包含您的執行檔的完整路徑想要啟動。例如,要執行與您自己的應用程式位於相同目錄中的「OpenFile.exe」:
<code class="cpp">startup( "OpenFile.exe" );</code>
避免錯誤
您在使用系統時遇到的錯誤() 最有可能是由於未指定可執行檔的完整路徑而導致的。 CreateProcess() 需要目標程式的絕對路徑才能正確運作。
結論
使用 CreateProcess() 是從內部開啟執行檔的更安全可靠的方法一個 C 應用程式。它允許您控制執行環境並避免潛在的安全問題。
以上是如何可靠地執行 C 語言的外部程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!