| 设置工程属性中的字符集Character Set为多字节字符集还是Unicode引发两个bug后,找到如下资料: |
| |
| 解决方法一: |
| 通常手动输入的字符串都是const char*(即LPCSTR)类型的,因此只需将该句中的MessageBox改为MessageBoxA即可。 |
| 解决方法二: |
| 参数使用“_T”宏: |
| MessageBox(NULL,_T("Open image failed!"),_T("error"),MB_OK); |
| 或是: |
| MessageBox(NULL, L"Openimage failed!", L"error",MB_OK); |
| /* |
| ************************************************************************************************************************************************ |
| * 当工程是Unicode编码时,_T将括号内的字符串以Unicode方式保存;当工程是多字节编码时,_T将括号内的字符串以ANSI方式保存 |
| * 关键字“L”,则是不管编码环境是什么,都是将其后面的字符串以Unicode方式保存。 |
| ************************************************************************************************************************************************* |
| */ |
| 1、用THCAR代替char |
| 2、字符串加_T(""),如_T("你好") |
| 3、用_tcscpy等代替strcpy等 |
| ANSI操作函数以str开头,如strcpy(),strcat(),strlen(); |
| Unicode操作函数以wcs开头,如wcscpy,wcscpy(),wcslen(); |
| ANSI/Unicode互为兼容的操作函数以_tcs开头 _tcscpy(C运行期库); |
| ANSI/Unicode互为兼容的操作函数以lstr开头 lstrcpy(Windows函数); |
| 考虑ANSI和Unicode的兼容,需要使用以_tcs开头或lstr开头的通用字符串操作函数。 |
| |
| 最后加上头文件 #include <tchar.h> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义