标题:CString --->char *
取消只看楼主
银魂飞雪
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-10-23
 问题点数:0 回复次数:9 
CString --->char *

现在有一个函数,其参数必须是char *类型的
但是MFC中没有,怎样把CString的数据转换为char *类型的

谢绝以下方法,因为我试过,不行!
谢谢!
方法一,使用强制转换。

CString theString( "This is a test" );
LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString;

  方法二,使用strcpy。

CString theString( "This is a test" );
LPTSTR lpsz = new TCHAR[theString.GetLength()+1];
_tcscpy(lpsz, theString);

  需要说明的是,strcpy(或可移值Unicode/MBCS的_tcscpy)的第二个参数是 const wchar_t* (Unicode)或const char* (ANSI),系统编译器将会自动对其进行转换。

  方法三,使用CString::GetBuffer

CString s(_T("This is a test "));
LPTSTR p = s.GetBuffer();
// 在这里添加使用p的代码
if(p != NULL) *p = _T('\0');
s.ReleaseBuffer();

搜索更多相关主题的帖子: CString char 
2007-01-17 20:59
银魂飞雪
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-10-23
得分:0 
能不能解释一下是什么意思?
谢谢
2007-01-18 10:11
银魂飞雪
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-10-23
得分:0 
LPTSTR和CAHR *不是同一类型啊
我用了,但是不行
2007-01-18 10:12
银魂飞雪
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-10-23
得分:0 
cannot convert from 'wchar_t *' to 'char *'
显示是这样的
2007-01-18 10:14
银魂飞雪
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-10-23
得分:0 

我还没试,不过我想知道一个问题,怎么那么多人说.
CString str;

(CHAR*)(LPCTSTR)str;

我试了之后好像不行

2007-01-20 20:29
银魂飞雪
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-10-23
得分:0 
我做的是一个解压缩的程序,
函数原型是
void compress (char * infile,char * outfile)
我的目的是要把编辑框中的CString的数据传到函数中.
各位说可以怎么弄?
谢谢
2007-01-20 20:31
银魂飞雪
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-10-23
得分:0 
我在网吧,现在。
不过我想应该可以
还有一个问题, Tchar和Wchar有何区别
2007-01-28 16:22
银魂飞雪
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-10-23
得分:0 
谢谢以上各位的回答了。
2007-01-28 16:23
银魂飞雪
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-10-23
得分:0 


还有一个问题, Tchar和Wchar有何区别
2007-01-29 19:46
银魂飞雪
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2006-10-23
得分:0 
我明白了,其实以上方法本来是都可以的,只是。。。只是。。。。我用的编译器有问题,是VC2005
2007-02-02 23:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-116617-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.138392 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved