牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

转换CString->char*

方法一:
如果不更改字串,用LPCTSTR即可,e.g.:
CString strTest = "abcdefg";
char* pszTest = (LPCTSTR)strTest;
or :
char* pszTest = (char*)(LPCTSTR)strTest;

方法二:
如果要更改字串,用GetBuffer()即可,e.g.:
CString strTest = "abcdefg";
char* pszTest = strTest.GetBuffer(strTest.GetLength());

strTest.ReleaseBuffer();
(此时用完后必须调ReleaseBuffer)

方法三:
使用 _tcscpy( char *strDestination, const char *strSource )也是可以的;
strDestination -- char *
strSource ---CString

方法四:
那就是sprintf了,要不memcpy也可以的。


CString char []之间的转换.  

char str[100] = ”str”;

CString sstr = “sstr”;

str.Format(“%s”,str);

str = LPCTSTR sstr;

strcpy(str,(LPCTSTR)sstr);

如果是赋值,则要:

CString s(_T("This is a test "));
LPTSTR p = s.GetBuffer();
// 在这里添加使用p的代码
if(p != NULL) *p = _T('\0');
s.ReleaseBuffer();
// 使用完后及时释放,以便能使用其它的CString成员函数

str的值变了.

posted on 2006-04-17 09:45 杨粼波 阅读(5836) 评论(1)  编辑 收藏 引用 所属分类: 学习笔记

评论

# re: 转换CString->char* 2010-08-13 13:21 joke

很好,果然只有用cppblog里面写的才真有用  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理