[問題] 型別轉換問題

作者: goodzey (--)   2017-09-04 17:32:01
小弟最近想把一個Visual Studio 2005小專案加入一個Visual Studio 2008大專案中,遇
到型別轉換問題:
在VS2008大專案中
const char* XXX(void *A, const char *B, const char *C, const char *D){...}
在VS2005小專案中
char* YYY= XXX(E, F, G, H);
結果出現編譯錯誤:
錯誤402 error C2440: '正在初始化' : 無法由 'const char *' 轉換為 'char *'
我試過一個方法:
在VS2005小專案中改成
char* YYY= (char*)XXX((void *)E, (const char *)F, (const char *)G, (const
char *)H);
結果編譯會過,但是程式執行.exe到這部分功能時還是會自動關掉
請問大家該怎麼解決?
謝謝!!
作者: stucode   2017-09-04 18:14:00
我猜你後面還有程式碼嘗試修改YYY指向的內容 這樣當然炸沒有的話用const char*去接XXX的回傳值就好了
作者: Lipraxde (Lipraxde)   2017-09-04 18:20:00
一定要改的話就用strcpy複製一份出來改
作者: tinlans ( )   2017-09-05 11:56:00
亂改 const 會死不意外,檢討一下
作者: Killercat (殺人貓™)   2017-09-05 14:48:00
YYY用const char*接有什麼困難嗎 = =要用值的話再strcpy_n一份出來不就好了編譯器明明都講那麼清楚了 XD
作者: Lipraxde (Lipraxde)   2017-09-05 14:51:00
一開始不熟悉的人就是會用怪怪的方式debug啊,強制轉型估計是上網找到的方法
作者: Killercat (殺人貓™)   2017-09-05 16:14:00
不過以前的VS居然能過而且沒runtime炸掉真是神蹟....
作者: goodzey (--)   2017-09-05 20:48:00
哈哈!的確是不熟悉才用這方法原專案多數人用LINUX上開發,少數用VS,所以一堆問題

Links booklink

Contact Us: admin [ a t ] ucptt.com