#include <fstream.h>
#include <stdio.h>
#include <afx.h>
#include <Rus_string.h>ofstream FP;
main()
{
FP.open("e:\\test1.txt",ios::app);
const char* gstr_MenuTitleRus[13] =
{
"\6Главное меню", /* 0 */  
"\6ручной поиск", /* 1 */  
    "\6системные установки",  /* 2 */
"\6Настройки ТВ",   /* 3*/    
"\6установка меню", /* 4 */       
"\6Родитесльский контроль", /* 5 */
"\6редакдировать программы", /* 6 */
"\6Список программы", /* 7*/
"\6состояние ресивера", /* 8 */
"\6Списокпоиск",
"\6Сканирование канала",
"\6УСТАНОВКА ВРЕМЕНИ",
"Language Set", /* 12 */
};
    DWORD dwNum = MultiByteToWideChar (CP_ACP, 0,gstr_MenuTitleRus, -1, NULL, 0);
wchar_t *pwText;
pwText = new wchar_t[dwNum];
  if(!pwText)
  {
   delete []pwText;
  }
   MultiByteToWideChar (CP_ACP, 0, gstr_MenuTitleRus, -1, pwText, dwNum);
delete []pwText;
FP<<pwText;
FP.close();
return 0;
}error C2664: 'MultiByteToWideChar' : cannot convert parameter 3 from 'const char *[13]' to 'const char *'
何问题,怎么解决。

解决方案 »

  1.   

    你的gstr_MenuTitleRus是一个指针数组,你只能用循环的方式一个一个来转换咯
      

  2.   

    这里需要的是char *,而你传的是char **也就是char *的数组,当然不行。
    只要用个for循环分别对数组中的char *元素进行分别的MultiByteToWideChar就可以了。
      

  3.   

    使得,你传进去的是char**,另外你的
    pwText = new wchar_t[dwNum];
    if(!pwText)
    {
    delete []pwText;
    }
    你这个语句干什么,后面转化的时候你的指针都为空了
      

  4.   

    人家要的是char *
    你给别人一个char **
    for(int i=0;i<13;i++)
    {   DWORD dwNum = MultiByteToWideChar (CP_ACP, 0,gstr_MenuTitleRus[i], -1, NULL, 0);
       ……
       ……
    }
      

  5.   

    对哦 for循环就可以了。谢谢啊!
      

  6.   

    T6套早毕业了··S3套毕业S4差肩膀··郁闷中··马上WLK了··不想打了··(1年前都是这样了··哈哈没怎么打过··上班了没时间弄)
      

  7.   

    嗯~就是。看来帅哥是高手啊,VC,WOW技术都风骚到位。要学习!要学习!呵呵~~忙吧, 我去交差了~~
      

  8.   

    #include <fstream.h>
    #include <stdio.h>
    #include <afx.h>
    #include <Rus_string.h>
    #include <windef.h>
    ofstream FP;
    main(){ FP.open("e:\\test1.txt",ios::app); const char* gstr_MenuTitleRus[13] =
    {
    "\6Главное меню", /* 0 */  
    "\6ручной поиск", /* 1 */  
        "\6системные установки",  /* 2 */
    "\6Настройки ТВ",   /* 3*/    
    "\6установка меню", /* 4 */       
    "\6Родитесльский контроль", /* 5 */
    "\6редакдировать программы", /* 6 */
    "\6Список программы", /* 7*/
    "\6состояние ресивера", /* 8 */
    "\6Списокпоиск",
    "\6Сканирование канала",
    "\6УСТАНОВКА ВРЕМЕНИ",
    "Language Set", /* 12 */
    };

        for(int i=0;i<=13;i++)
    {
    typedef unsigned long DWORD;
        DWORD dwNum = MultiByteToWideChar(CP_ACP, 0,gstr_MenuTitleRus[i], -1, NULL, 0);
    wchar_t *pwText;
    pwText = new wchar_t[dwNum]; MultiByteToWideChar (CP_ACP, 0, gstr_MenuTitleRus[i], -1, pwText, dwNum);
    FP<<pwText<<"\n";
    }
       FP.close();}
    正解