LPWSTR 类型的实参与const.char *类型形参不兼容
? 在 5? 8?? 13 行處會報錯
原因分析:
這些代碼在VC6 下面是可以的? 在VC2010下不能通過
VC6默認使用字符ANSII編碼方式
VC2010默認使用UNICODE編碼方式
為了滿足程序代碼國際化的需要,業界推出了Unicode標準,它提供了一種簡單和一致的表達字符串的方法,所有字符中的字節都是16位的值,其數 量也可以滿足差不多世界上所有書面語言字符的編碼需求,開發程序時使用Unicode(類型為wchar_t)是一種被鼓勵的做法。
LPWSTR與LPCWSTR由此產生,它們的含義類似于LPSTR與LPCSTR,只是字符數據是16位的wchar_t而不是char。
CString是一個動態TCHAR數組,BSTR是一種專有格式的字符串(需要用系統提供的函數來操縱,LPCTSTR只是一個常量的TCHAR指針。
在ANSII和UNICODE兩種情況下,TCHAR的字符位數不一樣,所以會有這樣的報錯。
最簡單的解決方法是工程右鍵屬性 修改編碼方式從unicode改為多字節字符集。
在VC2010中 將CString轉換成char? 應該使用 _wtoi
5 ,8修改為:
對13行的修改 修改為:
可添加聲明
字符串指針(char *)等已經被CString構造函數支持的數據類型可以直接賦值
將chRet賦給csRet
最后一行修改為
對13行的修改更簡化應該為尋找一種將int型轉換成CString的方法。
在VC6中可以直接?
但是在2010中不適用。
在VC2010中應該這樣寫
OK? 修改完成 可以運行
轉載于:https://www.cnblogs.com/duyy/p/3600454.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的LPWSTR 类型的实参与const.char *类型形参不兼容的全部內容,希望文章能夠幫你解決所遇到的問題。