2014-02-22 76 views
0

我使用Qt Creator和驗證碼:如何解決「從 '爲const char *' 的無效轉換到 'LPSTR {又名的char *}'[-fpermissive]「

CreateProcess(NULL,string("curl -F \"api_key=XXX\" -F \"filetype=mp3\" -F \"[email protected]"+execpath+"\\sound.mp3\" \"http://developer.echonest.com/api/v4/track/upload\"").c_str(), NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &startupinfo, &procinfo); // Send sound.mp3 to be analyzed by Echonest 

產生此問題:

invalid conversion from 'const char*' to 'LPSTR {aka char*} 

如何解決這個問題,我已經定義

注:

DEFINES -= UNICODE 

在我的.pro文件中

+0

注意execpath是解決一個字符串 – AmirH

+0

, 我已經轉換爲LPSTR: 的CreateProcess(NULL,(LPSTR)字符串(」 ... – AmirH

+1

不要那樣做,這不是一個解決方案,如果該參數。非const,這意味着函數可以改變它,你不希望它改變一個字符串的'c_str()',給這個函數一些可以修改的東西。 – chris

回答

2

您需要仔細閱讀關於CreateProcess()的文檔。第二個參數標記爲inout,這意味着函數可以(在這種情況下可以)修改指向的值。

如果您要按照您在評論中提及的方式進行演員表演,最好不僅添加評論,而且可能明確使用ANSI功能(因此請撥打CreateProcessA())以防萬一。

另外,Qt有自己的創建過程的方式。您可以參考QProcess文檔。

相關問題