Heim > Artikel > Backend-Entwicklung > So starten Sie ausführbare Dateien sicher in C: Warum ist CreateProcess() Ihre beste Wahl?
In diesem Handbuch erfahren Sie, wie Sie eine ausführbare Datei (.exe) aus einer anderen ausführbaren C-Datei heraus öffnen.
Bevor wir uns mit der Lösung befassen, ist es wichtig, die Gefahren der Verwendung der system()-Funktion hervorzuheben. System() weist mehrere Nachteile auf:
Stattdessen system() empfehlen wir die Verwendung der Funktion CreateProcess(). Mit dieser Funktion können Sie eine ausführbare Datei starten und so einen unabhängigen Prozess erstellen.
#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 ); }
Der aufgetretene Fehler ist wahrscheinlich darauf zurückzuführen, dass Sie nicht die vollständigen Angaben gemacht haben Pfad der ausführbaren Datei. Stellen Sie sicher, dass Sie den vollständigen Pfad einschließlich des Dateinamens angeben.
Das obige ist der detaillierte Inhalt vonSo starten Sie ausführbare Dateien sicher in C: Warum ist CreateProcess() Ihre beste Wahl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!