cstring(unicode) 转换成char *,请问怎么转换啊?谢谢!

944136 2003-06-11 02:44:00
cstring(unicode) 转换成char *,请问怎么转换啊?谢谢!
...全文
69 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
web_spider 2003-06-16
  • 打赏
  • 举报
回复
LPTSTR是个宏定义,
大盖相对于:
ifdef UNICODE
typedef LPTSTR wchar_t *;
else
typedef LPTSTR char *;
endif


具体的可以看看他们的声名
xx2j 2003-06-11
  • 打赏
  • 举报
回复
char *c;
CString str = "this is test.";
strcpy(c,str);

strncpy(c,str,str.GetLength());
waterflier 2003-06-11
  • 打赏
  • 举报
回复
压根就不能转为char* 除非你暴力
944136 2003-06-11
  • 打赏
  • 举报
回复
如果我使用LPTSTR,char * 与LPTSTR之间的值怎么转换呢?
pzytony 2003-06-11
  • 打赏
  • 举报
回复

暴力
redbit 2003-06-11
  • 打赏
  • 举报
回复
试试这个。不过我觉得不到万不得已不要把CString里的buf转到char *里面去,呵呵。

#include <afx.h>

void main()
{
CString s = "人民";
char *p = s.LockBuffer();
printf("%s\n", p);
}
qubo 2003-06-11
  • 打赏
  • 举报
回复
CString str;
str.Format("1234568789");
char aaa[20];
strcpy(aaa,str);
web_spider 2003-06-11
  • 打赏
  • 举报
回复
unicode 型的不应该转换为char *,应该转换为LPTSTR型的,也就是在定义了UNICODE宏下wchar_t *型的。当然也可以用强制转换,但属于暴力行为^_^.参考winnt.h中的定义了

看看msdn中的CString类
LPTSTR GetBuffer( int nMinBufLength );
throw( CMemoryException );
记着最后释放:
void ReleaseBuffer( int nNewLength = -1 );
point_to 2003-06-11
  • 打赏
  • 举报
回复
下面是转换位数组的例子,转换为char*,再改一下就ok勒!
CString str;
str.Format("1234568789");
char aaa[20];
for(int i=0;i<str.GetLength();i++)
aaa[i]=str[i];
aaa[i]='\0';

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧