[問題] 型別轉換問題

看板C_and_CPP作者 (--)時間6年前 (2017/09/04 17:32), 編輯推噓0(0012)
留言12則, 5人參與, 最新討論串1/1
小弟最近想把一個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://www.ptt.cc/bbs/C_and_CPP/M.1504517523.A.156.html

09/04 18:14, , 1F
我猜你後面還有程式碼嘗試修改YYY指向的內容 這樣當然炸
09/04 18:14, 1F

09/04 18:14, , 2F
沒有的話用const char*去接XXX的回傳值就好了
09/04 18:14, 2F

09/04 18:20, , 3F
一定要改的話就用strcpy複製一份出來改
09/04 18:20, 3F

09/05 11:56, , 4F
亂改 const 會死不意外,檢討一下
09/05 11:56, 4F

09/05 14:48, , 5F
YYY用const char*接有什麼困難嗎 = =
09/05 14:48, 5F

09/05 14:48, , 6F
要用值的話再strcpy_n一份出來不就好了
09/05 14:48, 6F

09/05 14:49, , 7F
編譯器明明都講那麼清楚了 XD
09/05 14:49, 7F

09/05 14:51, , 8F
一開始不熟悉的人就是會用怪怪的方式debug啊,強制轉型
09/05 14:51, 8F

09/05 14:51, , 9F
估計是上網找到的方法
09/05 14:51, 9F

09/05 16:14, , 10F
不過以前的VS居然能過而且沒runtime炸掉真是神蹟....
09/05 16:14, 10F

09/05 20:48, , 11F
哈哈!的確是不熟悉才用這方法
09/05 20:48, 11F

09/05 20:52, , 12F
原專案多數人用LINUX上開發,少數用VS,所以一堆問題
09/05 20:52, 12F
文章代碼(AID): #1PhHsJ5M (C_and_CPP)