在本指南中,我們將探索如何從另一個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中文網其他相關文章!