看到以上代码,可以看出提问者好像对 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字符格式的话,那么你需要采用方案一。
采纳哦