CreateProcess和CreateProcessA之間有什麼區別,在VC++ 2008中也有這些選擇嗎?CreateProcess和CreateProcessA有什麼區別?
我也有一個問題,我使用CreateProcessA函數,這在一個系統中運行良好,但在其他系統中失敗。
而且當我使用的CreateProcess我得到的錯誤無法從「CHAR [40]」轉換2參數爲「LPWSTR」我在Unicode模式
CreateProcess和CreateProcessA之間有什麼區別,在VC++ 2008中也有這些選擇嗎?CreateProcess和CreateProcessA有什麼區別?
我也有一個問題,我使用CreateProcessA函數,這在一個系統中運行良好,但在其他系統中失敗。
而且當我使用的CreateProcess我得到的錯誤無法從「CHAR [40]」轉換2參數爲「LPWSTR」我在Unicode模式
首先,CreateProcess是一個在CreateProcessA和CreateProcessW之間切換的宏,它們分別採用ANSI或Unicode字符串。這取決於您的項目構建設置(字符集項目屬性),Unicode與多字節。一般而言,您希望事物採用Unicode,因爲這可以實現全球化,並增加了允許更多支持語言的選項。
將字符轉換爲LPCWSTR的抱怨顯示它期望使用WSTR或寬字符串或unicode字符串。解決方法是使用_T(「blahblah」)宏聲明您的字符。
CreateProcess
是相同的或者CreateProcessA
(「ANSI」)或CreateProcessW
(「寬字符」),具體取決於您是否正在編譯沒有或啓用unicode選項的代碼。
區別在於,作爲參數傳遞的字符串應該是ANSI(8位字符)還是Unicode(16位字符)字符串。
也有替代品,如ShellExecuteEx
。
我也有一個問題,我使用CreateProcessA函數,這在一個系統中運行良好,但在其他系統中失敗。可能是什麼原因。還有其他功能嗎? – pradeep 2010-06-17 11:01:49
@rajivpradeep - 「可能是什麼原因」調用'CreateProcessA'失敗後,GetLastError()函數返回的值是多少? – ChrisW 2010-06-17 11:05:35
A代表「ANSI」,但答案是相同的(ASCII是僅7位字符集) – 2010-06-17 11:06:44