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

关于指针强制转换的问题

楼主#
更多 发布于:2005-03-09 20:45
在做filedisk时碰到这么两句

strcpy(OpenFileInformation->FileName, \"\\\\??\\\\\");
strcat(OpenFileInformation->FileName, FileName);

像这个OpenFileInformation是struct结构体,成员函数filename是uchar。如果是放在普通的console app的话这两句是不会产生语法错误的。但如果是mfc app的话,则要把改成
strcpy((char *)OpenFileInformation->FileName, \"\\\\??\\\\\");
strcat((char *)OpenFileInformation->FileName, FileName);
这样的指针强制转化才可以通过,为什么?
xbzjackey
驱动小牛
驱动小牛
  • 注册日期2002-12-27
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望34点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-03-10 08:49
不知道你的Console程序是怎么样的,我记得无论在什么情况下都要强制转换的。
回答好的不要忘了给分哦。。。
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-03-10 10:27
在做filedisk时碰到这么两句

strcpy(OpenFileInformation->FileName, \"\\\\??\\\\\");
strcat(OpenFileInformation->FileName, FileName);

像这个OpenFileInformation是struct结构体,成员函数filename是uchar。如果是放在普通的console app的话这两句是不会产生语法错误的。但如果是mfc app的话,则要把改成
strcpy((char *)OpenFileInformation->FileName, \"\\\\??\\\\\");
strcat((char *)OpenFileInformation->FileName, FileName);
这样的指针强制转化才可以通过,为什么?

在普通的console app中,成员函数filename类型是uchar
在mfc app中成员函数filename类型是CString
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
qinxg
驱动小牛
驱动小牛
  • 注册日期2002-11-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望27点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-03-11 15:01
应该是C++的严格类型检查所致.
游客

返回顶部