newlife
驱动牛犊
驱动牛犊
  • 注册日期2004-11-25
  • 最后登录2005-05-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2076回复:8

同样是访问字符串,cstring和char *如何转换?

楼主#
更多 发布于:2005-03-03 22:07
比如我在把一个dos界面的程序转换成windows界面,dos界面下都是一些用char *定义的变量,在mfc的控件关于字符串下访问字符串(比如edit框)用的是cstring,那么如何实现转换?另外,c中对字符串的操作函数比如strlen,strcpy这些好像都不能对cstring起作用?

最新喜欢:

hanwlhanwl
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-03-03 22:16
DOS下的程序。。。有windows操作系统的虚拟设备驱动支持,,应该可以直接执行的吧,,,

至于那些函数我觉得不可以操作cstring,,,

对cstring的操作函数,,应该都封装在其内部了。。

其实你自己可以试试啊,,,实践是检验理论的唯一标准,,! :D
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
newlife
驱动牛犊
驱动牛犊
  • 注册日期2004-11-25
  • 最后登录2005-05-29
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-03 23:25
其实我是试过不行,所以问解决办法…………
不是说不能运行,而是我就是需要做一个windows界面的,现在正在把dos的源代码转过去
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-04 09:35
CString的构造函数就可以
char * a=\"asdfas\";
CString str(a);
afxmessagebox(str);
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
walkonthesky
驱动中牛
驱动中牛
  • 注册日期2003-11-26
  • 最后登录2012-11-06
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-03-04 09:36
str.getlength()

=重载后可以直接复制
[img]http://www.driverdevelop.com/forum/upload/walkonthesky/2004-07-08_2004-07-07_b847.gif[/img]
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-03-04 11:22
仅仅是替换是不行的。
了解原来的程序,自己重新写一个。
xuzheng318
驱动牛犊
驱动牛犊
  • 注册日期2005-01-24
  • 最后登录2005-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-03-04 16:51
赞成楼上说得!
seahawk
驱动牛犊
驱动牛犊
  • 注册日期2005-02-13
  • 最后登录2006-03-08
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-03-04 22:00
比如我在把一个dos界面的程序转换成windows界面,dos界面下都是一些用char *定义的变量,在mfc的控件关于字符串下访问字符串(比如edit框)用的是cstring,那么如何实现转换?另外,c中对字符串的操作函数比如strlen,strcpy这些好像都不能对cstring起作用?

其实mfc通过重定义操作符LPCTSTR对此提供了非常简洁的支持:
char* str;
cstring cs;

char*到cstring:
cs=cstring(str);

cstring到char*:
str=(LPCTSTR)cs;
傍海渔村酣睡足 斜阳一脉洒千山 鲲鹏不待风潮起 万古江山多寂寥
xbzjackey
驱动小牛
驱动小牛
  • 注册日期2002-12-27
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望34点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-03-09 12:55
楼上说的没错,可以这样转换
CString str;

(char*)(LPCTSTR)str
回答好的不要忘了给分哦。。。
游客

返回顶部