VC2010 [转]解决char *无法转换为LPCWSTR问题
生活随笔
收集整理的這篇文章主要介紹了
VC2010 [转]解决char *无法转换为LPCWSTR问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文轉自:http://blog.csdn.net/sennyrong/article/details/6975603
?
過去微軟只遵循ANSI標準,而現在為了兼容、跨平臺,從VS2005后,微軟工程默認使用的字符集為unicode,所以,過去在VC6.0中編譯成功的程序,在新環境中編譯錯誤。 經我總結,解決辦法有以下幾種:1.直接改工程屬性 項目菜單->你的工程屬性(菜單最后一個選項)->配置屬性->常規->項目默認值->unicode改為未設置2.強行使用ANSI標準MessageBoxA
Win32 API也分2種版本, MessageBoxA / MessageBoxW,MessageBox根據是否定義_UNICODE宏而定義到其中一個版本,而MessageBoxA是老標準的API。
3.使用TCHAR和_stprintf_s
使用通用編程方法,讓編譯器自己做決定。
TCHAR定義到WCHAR或CHAR, 這兩個分別是wchar_t或char_stprintf_s是swprintf或sprintf等, 其他還有很多, 你可以到tchar.h中找找_T或TEXT宏也會在寬字符時在字符串前加L, 多字符時不起作用第三種方法:代碼示例
TCHAR szChar[20];?? ??? ?
_stprintf_s(szChar,_T("char code is %d"),wParam);
?? ??? ?MessageBox(hwnd,szChar,_T("char"),0);?
?
轉載于:https://www.cnblogs.com/freeliver54/archive/2012/12/03/2799478.html
總結
以上是生活随笔為你收集整理的VC2010 [转]解决char *无法转换为LPCWSTR问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenLdap+MySQL笔记
- 下一篇: sql每一个join都要加on