找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1373|回复: 2

[分享] ObjectARX从VC6代码升级到VS2005时的主要工作和注意事项

[复制链接]

已领礼包: 13个

财富等级: 恭喜发财

发表于 2013-5-19 04:09:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

由于AutoCAD从2007起,要求必须采用Unicode字符环境,而相应的c++编译器也需要调整,所以以往的VC6代码必须升级重新编译。 但VC6到VS2005的编程环境有了很大的不同,主要是默认字符集从ANSI换成了Unicode,另外VS2005的编译器对标准c++支持更多,所 以代码特别是字符串编码不规范,没有考虑兼容ANSI与Unicode环境的。升级时很容易困扰,根据死贫道不死道友的和谐精神,记录这段时间升级代码的 情况,总结如下:









1:设置问题
  a)设置新的Inc和Lib附加目录,参考ARxLabs说明
  b)按Lib目录中的库名称添加链接用的链接库。

2:代码修改
  a)头文件:系统头文件不能加.h
  b)将所有常量字符串添加“_T()"宏
  c)将所有c++运行时库的字符串操作函数换成_tcs格式,如:strlen->_tcslen,strcpy->_tcscpy
  d)VC支持常量默认INT类型,VS2005不支持,将所有const 变量名->const int 变量名
  e)VS2005与VC6的变量作用域不同,不在支持
    for(int i;...)
    请手工改成
    int i;
    for(i;...)
  f)类或函数过时问题
    CAD2007及以上版本不支持如下发送命令到CAD的方法
    LRESULT lResult=SendMessage(hwnd, WM_COPYDATA, (WPARAM)adsw_acadMainWnd(),   (LPARAM)&cmdMsg);
  请改成
    acDocManager->sendStringToExecute(acDocManager->curDocument(), cmd);
    AcDbMText 的成员函数变化较大,不支持的函数需要手工改变
    还有DAO访问数据库类,建议替换成ADO方式。
  g)对于需要使用多字节字串的函数,请使用如下两个函数替换
    WideCharToMultiByte 宽字节转多字节
    MultiByteToWideChar 多字节转宽字节
  h)类和结构命名冲突问题
    请用以下3种方式修改
    1:导入COM库的,可以Rename或命名空间
    2:可以修改代码的,改某个类名


0.jpg

评分

参与人数 1D豆 +2 收起 理由
ScmTools + 2 技术引导讨论和指点奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1632个

财富等级: 堆金积玉

发表于 2013-5-19 12:34:29 | 显示全部楼层
字符类型处理是关键
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2014-10-7 14:11:01 | 显示全部楼层
:lol:lol:lol:lol:lol
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-5-12 17:56 , Processed in 0.355427 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表