2014-06-26 35 views
-1

我正在使用taskSpawnvxWorksC++錯誤不推薦從字符串常量轉換爲字符*使用taskSpawn

taskspawn("taskname", priority, task_option,size,(FUNCTPTR)&foo, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); 

的問題是,它給我的錯誤給0's

error: deprecated conversion from string constant to 'char*' 

凡taskSpawn的最後一個參數是INT ...

任何想法?我有-Werror,並且無法刪除任何pragmas

+0

該手冊說第一個參數是char *而不是const char *,這就是你使用這樣的字符串傳遞的參數。我不知道它是否安全,但你可以使用'const_cast (「taskname」)' – Petesh

+0

將它轉換爲'char *'。一般來說,將一個文字轉換成可修改的東西是一個不可以使用'char name [] =「taskname」; taskSpawn(&taskname [0],...);'而是。 –

回答

3

問題可能與"taskname",因爲這是唯一的實際字符串。

的字符串是const char*型和wxWorks可能聲明爲char*

你唯一recause是投字符串刪除cost'ness儘管這是不乾淨的,但最好想這將是安全的。

+0

錯誤是明確的在0的tho 我試着把他們每個在一個單獨的行和錯誤指向最後0); – Skynight

+1

@Skynight我在關閉的圓括號處得到警告,而不是最後一個參數。 – Csq

+0

你是對的,就是這樣。 – Skynight

相關問題