2010-10-29 64 views
0

我試圖從我的程序中啓動一個進程,即cmd.exe。 Doc說我必須使用CreateProcess,下面是我如何使用它:在WinCE6上使用CreateProcess

CreateProcess((LPCWSTR)「\ Windows \ cmd.exe」,(LPCWSTR)「」,0,0,0,0,0 ,0,0,0); dw = GetLastError(); printf(「%u \ n」,dw);

的路徑是由所述目標顯示的一個(在目標,我發現了一個快捷方式cmd.exe的其中指出它駐留在\窗戶。

誤差總是相同的(2),不管怎麼我寫的路徑。顯然,對於錯誤代碼(2)是Invalid_Path。

感謝看了, GQ

回答

1

你傳遞一個不正確的字符串創建過程。只是投放面向字節的字符串到LPCWSTR沒有解決這個問題,它是不正確的數據 - 你真的必須使用一個Unicode字符串,你可以ñ拼寫爲

CreateProcess(L"\\Windows\\cmd.exe", NULL, 0,0,0,0,0,0,0,0); 

或者,你可以使用TEXT()宏。

+0

嗨,這似乎並沒有任何區別 – GQQ 2010-10-29 10:50:11

+0

有更多的錯誤:你應該逃避反斜槓,和命令行應該是可寫的或NULL。 OTOH:您確定\ windows \ cmd.exe確實存在於您的CE構建中? – 2010-10-29 11:09:54

+0

TCHAR宏_T也可用於將文本轉換爲正確的格式。 – ctacke 2010-10-29 13:09:23

0

路徑不正確。使用雙反斜槓。

CreateProcess(TEXT("\\Windows\\cmd.exe"), TEXT(""), 0,0,0,0,0,0,0,0);