一.问题的原因:VS2010默认采用宽字符UNICODE编码方式,定义了Unicode,因此相关的字符串必须为unicode字符串,而非ascii字符串. LPCWSTR中的W是宽字符的意思,是UNICODE,就是说不是传统的char这种单字节字符,而是一个字符占两字节.编译器把LoadImage解释成了LoadImageW,说明代码中某个地方定义了UNICODE开关,编译环境成了宽字节的,要把这个定义去掉. Win32 API也分2中版本, MessageBoxA / MessageBoxW,…
wchar_t是C/C++的字符数据类型,是一种扩展的字符存储方式,wchar_t类型主要用在国际化程序的实现中,但它不等同于unicode编码.unicode编码的字符一般以wchar_t类型存储.char是8位字符类型,最多只能包含256种字符,许多外文字符集所含的字符数目超过256个,char型无法表示. wchar_t数据类型一般为16位或32位,但不同的C或C++库有不同的规定,如GNU Libc规定wchar_t为32位[1],总之,wchar_t所能表示的字符数远超char型. 标…
VS2010默认是Unicode的,在VC 6.0中编译成功的项目在VS2010中常会出现类型错误. 经常出现的错误是:不能从const char *转换为LPCWSTR 如使用CreateDC("DISPLAY",NULL,NULL,NULL)就会报错,如果使用强制转换(LPCWSTR)"DISPLAY",虽然能够通过,但是编码会出错. 可行的办法是使用 TEXT("DISPLAY")转换, CreateDC(TEXT("DISPLA…
//定义一个结构体记录 struct group { CString text; //定义一个CString std::vector<tag_t> boudaries; std::vector<tag_t> charmfers; std::vector<tag_t> slots; }; struct AllFeats { std::vector<tag_t> maxBoudaries; struct group CurveGroup; }; 使用方法: //…
不知道大家用QT做什么程序,但应该还是Windows程序居多吧,仍免不了与WINAPI打交道.这就要求数据类型要与Windows一致,而QT的数据类型却是自成一体的.这就需要转换.比如我用到了LogonUser函数,其原型是: BOOL LogonUser( _In_      LPTSTR lpszUsername, _In_opt_  LPTSTR lpszDomain, _In_opt_  LPTSTR lpszPassword, _In_      DWORD dwLogonType,…
int CEnCryptionAndDeCryptionDlg::Byte2Hex(const unsigned char* input,unsigned long inLen, unsigned char* outPut,unsigned long* outLen) { static const char* num="0123456789ABCDEF"; unsigned ; unsigned char *p=outPut; ) { *outLen=inLen*; ; } ;i<…
第一种:利用赋值号直接赋值 ; string b = a; /* 错误.因为string是一个指针,存储的值是所指向的地址,而char型存储的是内容,所以不可以直接用赋值号赋值 */ const char* a = "hello"; string b = a; //正确 const char[] a = "hello"; string b = a; //正确 第二种:利用sting构造函数 查看一下string的构造函数: string(); string (con…
真是有意思: CString mess ;    mess = m_chLocalIP; 这样OK,但是写在一行就会报错 CString mess  = m_chLocalIP; //有问题…
最近用到CString类,转换成 char * 类型,下面介绍用法: 一.CString 和 LPSTR 转换: CString转换成LPSTR: 方法一:CString server; LPSTR lpStr = server.GetBuffer(0); server.ReleaseBuffer(0); 方法二:CString server; LPSTR lpStr = (LPSTR)(LPCSTR)server; LPSTR转换成CString: LPSTR lpStr = L"TestSt…
文章转载自http://blog.csdn.net/lanbing510/article/details/7425613 在Visual Studio 200X下,CString直接转换成const char* 有点困难,下面是自己用的一种可行方案: 从网上找了一些CString变量转换成const char*的方法,一种有效的办法是使用WideCharToMultiByte库函数进行转换.   将LPCTSTR转换为const char *,因为Unicode的问题,LPCTSTR     …