用VS2010一劳永逸解决AutoCADObjectArx开发中VS版本问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用VS2010一劳永逸解决AutoCADObjectArx开发中VS版
本问题
用VS2010一劳永逸解决AutoCAD ObjectArx开发中VS版本问题
AutoCAD ObjectArx 开发中一个痛苦的地方, 是版本问题. 每个版本必须严格对应Visual Studio 版本, 如用VS2005编译Arx2007到Arx2009的代码. 这样导致了开发人员的电脑中必须安装有VS2005, 并且使用VS2005. 然而现在VS2010都出来了, 作为Arx开发人员, 当然希望使用IDE方便的新特性, 而VS2010中提供了一种功能- PlatformT oolsets, 它使得VS2010能方便的编译和生成其他版本的C++程序. 这样, 只要安装一个VS2010并且经过一定的配置, 就能够轻易生成VS2003, VS2005, VS2008(sp1)的程序, 换句话说, 只使用VS2010, 就能够生成从Arx2007到Arx2011的任意版本AutoCAD的插件!
缺省的情况下, VS2010内置了两种 PlatformT oolsets: v100, v90. 它们指的是VC++的版本, v100指的是VS2010中的VC++, 而v90指的是VC++ 2008(SP1). 要让v90能正常工作, 缺省的配置要求电脑中必须同时安装VS2010 和VS2008, 这样才可以使用VS2010 来生成VC++ 2008(SP1) 的程序代码.
现在我要做的是, 配置VS2010使得只使用VS2010, 就能够生成从Arx2007到Arx2011的任意版本AutoCAD的插件! 经过一个下午的折腾, 我终于搞定了这个配置.
步骤:
1. 首先要有VC各个版本的编译器.可以到这里下载.我下载了
2003/5/8
2. 解压到VS2010安装目录下, 如图所示:
3. 下载一些编译时需要的tool, VCCommonBin.Zip, 见这个帖子.
4. 解压至VS2010安装目录下, 如上图所示.
(你也可以自己从vs2010的目录内查找并拷贝至指定目录)
5. 下载自定义的PlatformToolsets.zip文件, 见这个帖子.
6. 解压至目录下: C:\Program Files\MSBuild\
Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\, 如图所示:
好了这样VS2010就配置完毕了.
接下来试用一下:
1. 用VS2010打开Arx2007的sample工程Smiley
2. 提示要转化工程, 点确定(这里建议勾选备份原来的工程).
3. 转好之后,打开工程属性,选择Platform Toolset 为vs2005_arx2007.8.9
4. 如果是mfc工程,需要做一些小修改, 如图所示:
5. 好了.编译!
6. 用Depends查看生成的arx文件, 可以看到它的依赖项已经变
成vs2005的动态库了.
(本篇为柚子原创, 欢迎转载, 转载请注明"柚子"字样)
欢迎大家试用, 有任何问题联系顺子吧! (我是顺子)
------------------------------
附:各版本对应关系
AutoCAD(Arx) Visual Studio Net PlatformSDK -------------------------------------------------------------
* vs2010 v4.0 v7.1
Arx2010/11 vs2008(vc9)sp1 v3.5sp1 v7.0(v6.1.7600. 16385)
Arx2007/8/9 vs2005(vc8) v2.0 *
* vs2003(vc7.1) v1.1 *
Arx2004/5/6 vs2002(vc7) v1.0 *
Arx2000/2002 vc6 * *
Arx2.0/2.02 vc4.2 * *
Arx1.0 vc4.0 * *
--------------------------------------------------------------
end.
//2010,7,24补充
如果有这个错误:
程序数据库管理器不匹配;请检查安装
则可能的原因:
我的VCCommonBin是我的英文版下的.
而下载的VS2008sp1是中文版的.
解决方法:
到某台安装了vs2008的机器上拷贝和黏贴VCCommonBin 和VS2008SP1\bin下的同名文件覆盖即可.。