我想将一个字符串 如 char *name = "d:\\a.mp3"
转换成Unicode的形式存到一个文本文件中
我试着用 MultiByteToWideChar 但是还是不会用
并且在控制台程序中MultiByteToWideChar用不起来,是不是要加什么头文件啊?
请哪位大侠帮小弟一个忙,
指点一下,最好能举个简单的例子在此谢过了!!!
分不够可以再加!!!

解决方案 »

  1.   

    >>并且在控制台程序中MultiByteToWideChar用不起来,是不是要加什么头文件啊?Windows.h
      

  2.   

    char* pTest="test";
    MultiByteToWideChar(CP_ACP,0,pTest,-1,NULL,0);int MultiByteToWideChar(
      UINT CodePage,         // code page
      DWORD dwFlags,         // character-type options
      LPCSTR lpMultiByteStr, // string to map
      int cbMultiByte,       // number of bytes in string
      LPWSTR lpWideCharStr,  // wide-character buffer
      int cchWideChar        // size of buffer
    );
      

  3.   

    CComBSTR、_bstr_t是对BSTR的封装,BSTR是指向字符串的32位指针。
    char *转换到BSTR可以这样: BSTR b=_com_util::ConvertStringToBSTR("数据");///使用前需要加上头文件comutil.h
    反之可以使用char *p=_com_util::ConvertBSTRToString(b);这个比较简单
      

  4.   

    何必,这样快一点:WCHAR *name = L"d:\\a.mp3";
      

  5.   

    个人推荐另一个方法:
       在创建Console程序的时候,选择MFC类支持(最后一项) ;
       如果你已经创建好了,可以分析一下Make文件,主要是库什么的。   然后使用CString初始化该字符串,然后用AllocsysString()返回一个Unicode字符,当然还要在其他方面做些设置,自己去查查典型程序。