CreateProcess
有3個字符串參數:lpApplicationName
,lpCommandLine
,lpCurrentDirectory
。WinAPI CreateProcess和參數引用
我試圖引用該參數,發現有時引號會打破我的代碼。 有人可以解釋引用規則嗎?
正常工作:
NULL
"\"C:\\some path\\my app.exe\" myparam1 myparam2"
"C:\\some path"
不起作用:
NULL
"\"C:\\some path\\my app.exe\" myparam1 myparam2"
"\"C:\\some path\""
正常工作:
"C:\\some path\\my app.exe"
"\"C:\\some path\\my app.exe\" myparam1 myparam2"
"C:\\some path"
不起作用:
"\"C:\\some path\\my app.exe\""
"\"C:\\some path\\my app.exe\" myparam1 myparam2"
"C:\\some path"
P.S.對不起,StackOverflow的格式沒有在上面的例子中顯示我的反斜槓,我錯過了它...現在修復了
請記住,C字符串中的所有*反斜槓必須被轉義;你所有的C字符串都需要使用兩個反斜槓作爲路徑分隔符。引用參數的規則在「The New New Thing」博客的'CommandLineToArgvW()'函數的文檔中以及各個位置中描述。 – andlabs
不應引用應用程序路徑和當前目錄。引用是用於命令行的,不適用於路徑和目錄。 –
@RaymondChen但是,如果你看看CreateProcess的文檔,你會看到lpApplicationName必須被引用。損壞的文檔? –