이 가이드에서는 다른 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!