作者goodzey (--)
看板C_and_CPP
標題[問題] 型別轉換問題
時間Mon Sep 4 17:32:01 2017
小弟最近想把一個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到這部分功能時還是會自動關掉
請問大家該怎麼解決?
謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.139.203
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1504517523.A.156.html
1F:→ stucode: 我猜你後面還有程式碼嘗試修改YYY指向的內容 這樣當然炸 09/04 18:14
2F:→ stucode: 沒有的話用const char*去接XXX的回傳值就好了 09/04 18:14
3F:→ Lipraxde: 一定要改的話就用strcpy複製一份出來改 09/04 18:20
4F:→ tinlans: 亂改 const 會死不意外,檢討一下 09/05 11:56
5F:→ Killercat: YYY用const char*接有什麼困難嗎 = = 09/05 14:48
6F:→ Killercat: 要用值的話再strcpy_n一份出來不就好了 09/05 14:48
7F:→ Killercat: 編譯器明明都講那麼清楚了 XD 09/05 14:49
8F:→ Lipraxde: 一開始不熟悉的人就是會用怪怪的方式debug啊,強制轉型 09/05 14:51
9F:→ Lipraxde: 估計是上網找到的方法 09/05 14:51
10F:→ Killercat: 不過以前的VS居然能過而且沒runtime炸掉真是神蹟.... 09/05 16:14
11F:→ goodzey: 哈哈!的確是不熟悉才用這方法 09/05 20:48
12F:→ goodzey: 原專案多數人用LINUX上開發,少數用VS,所以一堆問題 09/05 20:52