في هذا الدليل، سنستكشف كيفية فتح ملف قابل للتنفيذ (.exe) من داخل ملف C آخر قابل للتنفيذ.
قبل الخوض في الحل، من الضروري تسليط الضوء على مخاطر استخدام وظيفة النظام (). يعرض System() عدة عيوب:
بدلاً من system()، نوصي باستخدام وظيفة CreateProcess(). تتيح لك هذه الوظيفة تشغيل ملف قابل للتنفيذ وإنشاء عملية مستقلة.
#includeVOID 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 ); }
من المحتمل أن ينبع الخطأ الذي واجهته من حقيقة أنك لم تحدد المسار الكامل للملف القابل للتنفيذ. تأكد من توفير المسار الكامل، بما في ذلك اسم الملف.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3