
“CWnd::MessageBoxW”: 不能将参数 1 从“char [100]”转换为“LPCT
怎么回事啊,HANDLEhfile=CreateFile(_T("5.txt"),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRI...
怎么回事啊, HANDLE hfile=CreateFile(_T("5.txt"),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); char buf[100]; DWORD ch; ReadFile(hfile,buf,100,&ch,NULL); buf[ch]=0; CloseHandle(hfile); MessageBoxW(buf);
展开
1个回答
展开全部
看到以上代码,可以看出提问者好像对 ANSI 和 UNICODE 字符集,不是很了解,char buf[100]; 这显然是采用的 ANSI 字符集,而下面MessageBoxW(buf),函数又是Unicode的版本。当然会触发如上错误。 在此解释一下,MessageBox()分两个版本:MessageBoxA() 和 MessageBoxW() 版本。如果使用 CHAR,那么应该用MessageBoxA(),如果用 WCHAR,那么用MessageBoxW();如果用模板TCHAR,那么用MessageBox()。 所以对于上述问题,将会有两种解决方案。 方案一:将char buf[100]; 改为 WCHAR[100]; 方案二:将MessageBoxW(buf); 改为 MessageBoxA(buf); 其实这段代码标准的写法应该是这样的: 如果你从文件里读的内容是ANSI字符格式的话,那么你必须采用第二种方案;相反,如果你从文件力度的内容是UNICODE字符格式的话,那么你需要采用方案一。
采纳哦
采纳哦

2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询