char[] 转换为LPWSTR

1、char[] 转换为 LPWSTR

解决方案:

思路一:
使用CA2W字符转换宏(ATL and MFC String Conversion Macros)。
根据MSDN描述,这个宏用于将ANSI转换为Wide Character(UNICODE)

代码如下:
LPWSTR aaa = CA2W(text);
item.pszText = aaa;

思路二:
使用int MultiByteToWideChar()函数。根据MSDN描述,这个方法:This
function maps a character string to a wide-character (Unicode)
string。

代码如下:

TCHAR aaa[31];
MultiByteToWideChar(0,0,text,31,aaa,62);

时间: 2024-10-06 08:50:36

char[] 转换为LPWSTR的相关文章

[转]不能将参数1从“const char []”转换为“LPCTSTR

今天在使用vs2008+MFC时候,使用editControl的replacesel(“”)发生报错.如下::不能将参数1从“const char []”转换为“LPCTSTR” 其解决方案就是, 在项目属性里面找到项目默认值下面的字符集, 将其换为:使用多字节字符集就ok了.原因: typedef   LPCTSTR    LPTSTR ; #ifndef   _UNICODE    typedef   TCHAR   char;    #else    typedef   TCHAR   w

MFC之调用DLL的问题:error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR

今天在项目中遇到了一个小小的问题,在调用别人动态连接库(DLL)的时候,总是出现如下提示,导致程序无法正常运行,编程环境:VS2010+MFC 问题提示:error C2664: "LoadLibraryW": 不能将参数 1 从"const char *"转换为"LPCWSTR 经过查找资料,问题得以解决,感谢: 解决方法来源于:http://blog.sina.com.cn/s/blog_6a2236590100xbgl.html 1 静态调用Lib

不能将参数 2 从“const char *”转换为“LPCWSTR”

不能将参数 2 从“const char *”转换为“LPCWSTR” 2013-06-05 17:18 阅读(309)评论(0)编辑删除 error C2664: “LoadImageW”: 不能将参数 2 从“const char *”转换为“LPCWSTR” 解决办法:将Project的属性里头的 字符集使用Unicode改成“未设置”. 属性->配置属性->常规->项目默认值->字符集->Unicode改成“未设置”.

不能从const char *转换为LPCWSTR 经常碰到(转)

不能从const char *转换为LPCWSTR 在VC 6.0中编译成功的项目在VS2005 vs2005.vs2008.vs2010中常会出现类型错误. 经常出现的错误是:不能从const char *转换为LPCWSTR 如使用MessageBox(hwnd,"TEST",NULL,0)就会报错,如果使用强制转换(LPCWSTR)"TEST",虽然能够通过,但是编码会出错. 可行的办法是使用 _T("TEST")转换,或者TEXT(&qu

不能从const char *转换为LPCWSTR

编译器有时候会根据编码方式来选择定义为LPCWSTR还是LPCTSTR LPSTR: 32bit指针 指向一个字符串,每个字符占1字节. 相当于 char * LPCSTR: 32-bit指针 指向一个常字符串,每个字符占1字节. 相当于 const char * LPTSTR: 32-bit指针 每字符可能占1字节或2字节,取决于Unicode是否定义 LPCTSTR:32-bit指针 指向一个常字符串,每字符可能占1字节或2字节,取决于Unicode是否定义 LPWSTR: 32-bit指针

char* 转换为 CString 乱码问题(转)

1 //计算char *数组大小,以字节为单位,一个汉字占两个字节 2 int charLen = strlen(sText); 3 //计算多字节字符的大小,按字符计算. 4 int len = MultiByteToWideChar(CP_ACP,0,sText,charLen,NULL,0); 5 //为宽字节字符数组申请空间,数组大小为按字节计算的多字节字符大小 6 TCHAR *buf = new TCHAR[len + 1]; 7 //多字节编码转换成宽字节编码 8 MultiByt

error C2664: “CreateFileW”: 不能将参数 1 从“char *”转换为“LPCWSTR”

错误 1 error C2664: “CreateFileW”: 不能将参数 1 从“char [7]”转换为“LPCWSTR” e:/mystudy/09/myvirtualdisk11/myvirtualdiskdll/diskdll.cpp 112 错误 2 error C2664: “DefineDosDeviceW”: 不能将参数 2 从“char *__w64 ”转换为“LPCWSTR” e:/mystudy/09/myvirtualdisk11/myvirtualdiskdll/d

error C2664: “LoadLibraryW”: 不能将参数 1 从“const char *”转换为“LPCWSTR”

在使用VS2010编写运行时动态链接dll文件时出现的一个问题,问题解决得益于此文章: http://blog.sina.com.cn/s/blog_6a2236590100xbgl.html 通过调用这个函数:LoadLibrary出现的该问题.原因 :工程只支持UNICODE字符解决方法:1.在解决方案资源管理器中的工程上右键属性->配置属性-->常规--->字符集---->使用多字节符字符集 2.也就是宽字符,所以下面这行代码,应该编译有错误hinst=LoadLibrary

linux 下 Linux 下char转换为wchar_t

LInux下使用mbstowcs函数可以将char转化为wchar_t函数含义:convert a multibyte string to a wide char string说明:       The behaviour of mbstowcs depends on the LC_CTYPE category of the current locale返回值:   The  mbstowcs() function returns the number of wide characters th