在本指南中,我们将探索如何从另一个 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中文网其他相关文章!