简单的宽字符转换,头文件报错

perfecth 2009-03-21 11:49:40
想做wchar_t转换,但是一包含这个#include <winnls.h>头文件就报错,不知道为何。

#include <iostream>
#include <stdlib.h>
#include <string>
#include <wchar.h>
#include <winnls.h>

#define MAX_PATH 100

using namespace std;

int main(void)
{
wchar_t strPath[MAX_PATH];
char buf[] = "函数集,fun 1";
mbstowcs( strPath, buf, MAX_PATH );
MultiByteToWideChar(CP_ACP, 0, buf, strlen(buf), strPath, MAX_PATH );
cout<<strPath<<endl;
for(int i;i<MAX_PATH;i++)
cout<<strPath[i]<< " ";
return 0;
}

error C2146: syntax error : missing ';' before identifier 'LCTYPE'
include\winnls.h(616) : fatal error C1004: unexpected end of file found


为何头文件会出错??

...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
perfecth 2009-03-21
  • 打赏
  • 举报
回复
谢谢各位大哥,一下子搞定我的问题。
lingyin55 2009-03-21
  • 打赏
  • 举报
回复
up
缺少包含#include <windows.h>
  • 打赏
  • 举报
回复
汗,代码段里i没有初始化,输出野指针。
此外cout输出的是数字,想输出中文要这样

for(int i=0;i<( strlen(buf)/2 );i++)
wprintf(L"%s\n", strPath);
fox000002 2009-03-21
  • 打赏
  • 举报
回复
使用一些常用的 API 函数,包含 windows.h 就行了

不然很多头文件包含的前后关系需要自己处理
baihacker 2009-03-21
  • 打赏
  • 举报
回复
#include <windows.h>//这个
#include <winnls.h>

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧