我在一个DLL中编写了下面的函数,由于是用别的程序调用这个函数,限于条件传入参数只能用LPCSTR类型的,而ConnectToServer函数的参数要求是LPCWSTR类型的。这两个条件不能改。
我用A2CW可以转换,但是转换后原来的字符串内容就变成乱码了。
请教高手如何将LPCSTR转变成LPCWSTR.而且转换后原来的字符串内容不会变成乱码,最好能给出代码,由于小弟是新手,列出参考文献对我帮助不大。
extern "C" bool PASCAL EXPORT BackupDB (LPCSTR g_szServer,LPCSTR g_szLogin,LPCSTR g_szPassword,LPCSTR g_szDBName,LPCSTR g_szBkupRstrFileName)
{
.....
  ConnectToServer (g_szServer,g_szLogin,g_szPassword);
.....
}

解决方案 »

  1.   

    MultiByteToWideChar函数我也用了,但是总是出错,能否就这个例子给出具体的MultiByteToWideChar调用参数,或是完整代码
      

  2.   

    char *lptstr = "fdasfd";
    LPCWSTR *lpcwstr = char new[255];// 这个一定要大
    MultiByteToWideChar()
      

  3.   

    LPCWSTR pw = T2W("Hello,world!"); // tchar -> wchar
      

  4.   

    还要加上这个
    #include <atlbase.h>
    USES_CONVERSION;
    LPCWSTR pw = T2W("Hello,world!"); // tchar -> wchar
      

  5.   

    你定义了UNICODE宏,就会实现自动转换
      

  6.   

    WCHAR* ToWChar(char * str) 

    //在GDI+中,有关字符的参数类型全部都是WCHAR类型的 
    //该函数是将传统字符串进行转换 
     
    static WCHAR buffer[1024]; 
    wcsset(buffer,0); 
    MultiByteToWideChar(CP_ACP,0,str,strlen(str),buffer,1024); 
    return buffer; 
    }
      

  7.   

    char *lptstr = "fdasfd";
    LPCWSTR *lpcwstr = char new[255];// 这个一定要大
    MultiByteToWideChar()