VC法式設計中CreateProcess用法留意事項。本站提示廣大學習愛好者:(VC法式設計中CreateProcess用法留意事項)文章只能為提供參考,不一定能成為您想要的結果。以下是VC法式設計中CreateProcess用法留意事項正文
關於windows法式設計來講,啟動一個過程有三種辦法:WinExec,ShellExecute,CreateProcess。這裡僅對CreateProcess的用法加以解釋。
關於CreateProcess的具體參數讀者可以查MSDN和《Windows API參考手冊》,這裡不詳細解釋。上面給出經常使用的辦法:
STARTUPINFO startup; ZeroMemory( &startup, sizeof(startup) ); startup.cb = sizeof(startup); ZeroMemory( &m_procInfo, sizeof(m_procInfo) ); // 初始化成果體是必需的,不然會異常 BOOL bRetVal = ::CreateProcess( (LPCWSTR)strProcPath, NULL, NULL, NULL, FALSE, 0, NULL, NULL, &startup, &m_procInfo ); if ( !bRetVal ) { AfxMessageBox( _T( "啟動掉敗!" ) ); }
解釋:
第一個參數是運用法式的全途徑,第二個參數是敕令行參數。假如第一個參數為空,就必需在第二個參數中指定運用法式的途徑。
假如啟動的過程與以後過程不再統一個目次下,則第八個參數必需指定,第八個參數為啟動的過程地點的途徑。不然不克不及勝利啟動過程。以下所示:
BOOL bRetVal = ::CreateProcess( (LPCWSTR)strProcPath, NULL, NULL, NULL, FALSE, 0, NULL, (LPCWSTR)strProcFolder, &startup, &m_procInfo ); if ( !bRetVal ) { AfxMessageBox( _T( "啟動掉敗!" ) ); }