现在的位置: 首页 > 综合 > 正文

用VS2010一劳永逸解决AutoCAD ObjectArx开发中VS版本问题

2013年08月23日 ⁄ 综合 ⁄ 共 1954字 ⁄ 字号 评论关闭
用VS2010一劳永逸解决AutoCAD ObjectArx开发中VS版本问题

AutoCAD ObjectArx 开发中一个痛苦的地方, 是版本问题. 每个版本必须严格对应 Visual Studio 版本, 如用VS2005编译Arx2007到Arx2009的代码. 这样导致了开发人员的电脑中必须安装有VS2005, 并且使用VS2005. 然而现在VS2010都出来了, 作为Arx开发人员, 当然希望使用IDE方便的新特性, 而VS2010中提供了一种功能 - PlatformToolsets, 它使得VS2010能方便的编译和生成其他版本的C++程序. 这样, 只要安装一个VS2010并且经过一定的配置, 就能够轻易生成VS2003, VS2005, VS2008(sp1)的程序, 换句话说, 只使用VS2010, 就能够生成从Arx2007到Arx2011的任意版本AutoCAD的插件!

缺省的情况下, VS2010内置了两种 PlatformToolsets: 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的动态库了.

(本篇为柚子原创, 欢迎转载, 转载请注明"ObjectArx.net柚子"字样)
欢迎大家试用, 有任何问题联系顺子吧! (我是顺子)

------------------------------
附:各版本对应关系

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下的同名文件覆盖即可.

中文原址:http://www.objectarx.net/home.php?mod=space&uid=99759&do=blog&id=3

英文原址:http://www.theswamp.org/index.php?topic=33543.0

 

参考网址:http://nanlee.wordpress.com/2010/11/06/building-against-msvc2005-toolset-using-msvc2010/

抱歉!评论已关闭.