LPCTSTR和char*之间怎样相互转换? LPCTSTR和char*之间怎样相互转换?LPCTSTR是不是unicode码? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 以下摘自 MS的头文件// ANSI (Multi-byte Character) typestypedef CONST CHAR *LPCSTR, *PCSTR;#ifdef UNICODE // r_winnttypedef unsigned short WCHAR; // wc, 16-bit UNICODE charactertypedef CONST WCHAR *LPCWSTR, *PCWSTR;typedef LPCWSTR LPCTSTR;typedef LPCSTR LPCTSTR;如果没有定义UNICODE,LPCTSTR实际上就是CONST char *如果定义了UNICODE,LPCTSTR实际上变成了unsigned short用CString或WideCharToMultiByte来处理 同意楼上的。LPCTSTR 就是char*复制方法就是char* 和char*的复制方法用strcpy(char*,char*,int length); include "stdafx.h" //#include <windows.h>#include <stdio.h>#include <stdlib.h>int main(int argc, char* argv[]){ char* cBuf="This is a Test!\n"; LPCTSTR lpsz=(LPCTSTR)malloc(200*sizeof(char*)); sprintf((LPTSTR)lpsz,"%s",cBuf); printf("%s",lpsz); free((void*)lpsz); return 0;} 如果定义了UNICODE,LPCTSTR实际上变成了unsigned shortMyConvertToChar(){ USES_CONVERSION; LPCTSTR lpsz = L"23456"; char* lpszT = OLE2T(lpsz);} 上面的函数用错了,在UNICODE环境下,不能用OLE2T应该用W2CAchar* lpszT = W2CA(lpsz); LPCTSTR分析:LP:long型指针;C:常量;T:和_T含义一样,应该是UNICODE型;STR:字符串。char* 就等于LPSTR。char* p;LPCTSTR lp;p = (LPSTR)lp; LPCTSTR lp;CString str =lp;char *p;LPCTSTR转换 char*p =new char[lp.GetLength()]memcpy(p,sizeof(lp),str);char* 转换 LPCTSTR lp = p; to romanticist(让我拥抱你入梦): 在UNICODE环境下,你的方法还能用吗? 求助大家一个网络传输数据的验证方案,不甚感谢~~ 新人求救:Visual C++ 6.0 简体中文专业版 安装问题? 按钮的问题 CEvent ev;后会出错,WHY??? 文件转换问题 菜鸟之问 如何让一个程序既可 以Console形式运行 又可 以Win32形式运行 在vc中如何实现对位的操作,如对具体某一位的操作,两个二进制数高位与低位的互换 dc(this) 是什么意思?请大家指点。 怎么调试DirectDraw全屏独占程序 滚动条问题 程序自启动问题!!!
以下摘自 MS的头文件// ANSI (Multi-byte Character) types
typedef CONST CHAR *LPCSTR, *PCSTR;#ifdef UNICODE // r_winnt
typedef unsigned short WCHAR; // wc, 16-bit UNICODE character
typedef CONST WCHAR *LPCWSTR, *PCWSTR;
typedef LPCWSTR LPCTSTR;typedef LPCSTR LPCTSTR;如果没有定义UNICODE,LPCTSTR实际上就是CONST char *
如果定义了UNICODE,LPCTSTR实际上变成了unsigned short用CString或WideCharToMultiByte来处理
LPCTSTR 就是char*
复制方法就是char* 和char*的复制方法
用strcpy(char*,char*,int length);
#include <stdio.h>#include <stdlib.h>
int main(int argc, char* argv[])
{
char* cBuf="This is a Test!\n"; LPCTSTR lpsz=(LPCTSTR)malloc(200*sizeof(char*)); sprintf((LPTSTR)lpsz,"%s",cBuf);
printf("%s",lpsz);
free((void*)lpsz);
return 0;
}
MyConvertToChar()
{
USES_CONVERSION;
LPCTSTR lpsz = L"23456";
char* lpszT = OLE2T(lpsz);
}
应该用W2CA
char* lpszT = W2CA(lpsz);
char* 就等于LPSTR。
char* p;
LPCTSTR lp;
p = (LPSTR)lp;
CString str =lp;
char *p;
LPCTSTR转换 char*
p =new char[lp.GetLength()]
memcpy(p,sizeof(lp),str);
char* 转换 LPCTSTR
lp = p;
在UNICODE环境下,你的方法还能用吗?