用VS2010开发AutoCAD2006对应的arx文件

        在AutoCAD的发展史中有几次重要的分水岭,其中最重要的一次是cad2006和cad2007之间的分水岭。R14、cad2002、cad2004、cad2005、cad2006都使用“多字符集”,而cad2007、cad2008、cad2009等是采用“Unicode”字符集,即07以后都采用“Unicode”字符集。

         其次,ACAD/ARX的SDK版本都说三年一版,那究竟什么是三年一个版本?简单来说就是CAD04,05,06是一代,CAD07,08,09是一代,CAD 10 11又是一代。同一代ACAD平台上的ARX可以相互通用,可以加载成功。这是为什么呢?根本原因在于,它们所依赖的运行时库不同。举例来说,CAD07,08,09依赖的是mfc80u.dll等这一套,CAD 2010和2011依赖的是mfc90u.dll这一套,它们的底子不一样,所以才会造成加载的问题。
再回到和VS关系的问题上来说,我们知道说07 08 09要用VS2005, 10 11要用 VS 2008。

       本文主要讨论,Autocad2006的开发问题。使用工具如下:

       VS2010 + ObjecArx2012 + Daffodil安装包 + ObjectArx2006 +VC7.0编译器

1)首先安装AutoCAD2006和VS2010,再安装ObjecArx2012、Daffodil安装包、ObjectArx2006、

2)安装完后,打开VS2010,点击工具栏上的“文件”---》新建/项目 ——》Visual C++/ObjectARX   -->ObjectARX/DBX/OMF Project

    解决方案:Solu4 ,工程名:ArxProj4---》OK,如图(1)所示。

3)设置开发者前缀和勾选“MFC”支持。如图(2)、图(3)所示。

4)右击工程ArcProj4-->属性,进行配置,具体请看步骤5)——》10)

5)在【配置属性】/【常规】设置输出目录、中间目录都为 .\Debug2006\

      平台工具集选择“v70”,字符集选择“多字符集” ,如图(4)所示。

6)在【配置属性】/【调试】设置cad.exe的路径,比如:E:\Program Files\AutoCAD 2006\acad.exe

7)在【配置属性】/【VC++目录】里,设置VC7.0的包含目录和库目录

    包含目录(即include路径):
    E:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\include;
    E:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\Include;
    E:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\include;
    E:\Program Files\Microsoft Visual Studio .NET\Vc7\include;


    库目录(即lib路径):
    E:\Program Files\Microsoft Visual Studio .NET\Vc7\lib;
    E:\Program Files\Microsoft Visual Studio .NET\Vc7\atlmfc\lib;
    E:\Program Files\Microsoft Visual Studio .NET\Vc7\PlatformSDK\lib;

   注意它们之间,要用英文的;隔开。

8)在【C/C++】选择卡里,添加“附加包含目录”:D:\ObjectARX\ObjectArx2006\inc;

                                           添加“解析#using引用”:E:\Program Files\AutoCAD 2006\acad.exe;

      在【C/C++】/【预处理器】,添加预处理定义:_ARX_VEC=0x0162

      在【C/C++】/【语言】,不强制For循环范围中的合规性,兼容VC6的语法。

      在【C/C++】/【预编义头】,修改文件的输出路径: .\Debug2006/$(TargetName).pch  (注意中间的一个斜杠与第一个斜杠不同)

      在【C/C++】/【输出文件】,ASM列表位置: .\Debug2006/ (首尾的两个斜杠不同)

                                                  对象文件名:    .\Debug2006/

                                                 程序数据库文件名:添加 .\Debug2006/

9)在【链接】选项卡里,设置arx文件的存放位置:Debug2006/

                                        附加库目录:D:\ObjectARX\ObjectArx2006\lib;

在【链接】/【输入】,设置附加依赖项:rxapi.lib;acdb16.lib;acge16.lib;acad.lib;acedapi.lib;(一共有5个,用英文的;分开)

模块定义文件:ArxProj4.def

在【链接】/【调试】,设置“生成程序数据库文件”: .\Debug2006/ArxProj4.pdb (注意中间的一个斜杠与第一个斜杠不同)

在【链接】/【调试】,设置导入库:.\Debug2006/ArxProj4.lib

10)在【浏览信息】/【常规】,设置输出文件:.\Debug2006/$(TargetName).bsc(注意中间的一个斜杠与第一个斜杠不同)


进行测试:

11)新建一个.def文件,命名为:ArxProj4,内容如下:

LIBRARY "sanArxProj4"

EXPORTS
	acrxEntryPoint		PRIVATE
	acrxGetApiVersion	PRIVATE

12)注册一个student的命令,在acrxEntryPoint.cpp中,调用下面的语句

// - sanArxProj4.student command (do not rename)
	static void sanArxProj4student(void)
	{
		// Add your code for command sanArxProj4.student here
		acutPrintf(TEXT("I love ObjectArx."));
	}

13)右击工程ArxProj4-->生成,如下:

用VS2010开发AutoCAD2006对应的arx文件_第1张图片

图(a)成功生成.arx文件

14)按F5启动调试,在cad2006的命令行窗口,输入appload -->加载ArxProj.arx 文件--> student,得到如下结果:


图(b)加载arx文件的执行结果:“I love ObjectArx”


图示操作:


图(1)创建一个ObjectArx工程:ArxProj4

用VS2010开发AutoCAD2006对应的arx文件_第2张图片

图(2)设置一个开放者前缀,可任意设置


图(3)勾选“MFC”支持

   用VS2010开发AutoCAD2006对应的arx文件_第3张图片

图(4)在【常规】里,修改输出目录、中间目录、编译平台与字符集

用VS2010开发AutoCAD2006对应的arx文件_第4张图片

图(5)选择cad2006\acad.exe的安装路径


图(6)添加VC7.0的包含目录和库目录,分别为FrameworkSDK\include、Vc7\PlatformSDK\Include、Vc7\atlmfc\include、Vc7\include;

Vc7\lib、Vc7\atlmfc\lib、Vc7\PlatformSDK\lib

用VS2010开发AutoCAD2006对应的arx文件_第5张图片

图(7)设置【C/C++】的附加包含目录和“解析#using引用”目录

用VS2010开发AutoCAD2006对应的arx文件_第6张图片

图(8)不强制For循环范围的合规性

用VS2010开发AutoCAD2006对应的arx文件_第7张图片

图(9)设置“预编译头”的输出路径


图(10)设置ASM列表位置、对象文件名、程序数据库文件名的输出路径

用VS2010开发AutoCAD2006对应的arx文件_第8张图片

图(11)在【链接器】里,设置输出文件和附加库文件


用VS2010开发AutoCAD2006对应的arx文件_第9张图片

图(12)设置附加依赖项:rxapi.lib acdb16.lib acge16.lib acad.lib acedapi.lib(一共5个),

以及一个 .def文件,可查看第(11)、(12)步骤

用VS2010开发AutoCAD2006对应的arx文件_第10张图片

图(13)在【连接器】,设置“生成程序数据库文件”

用VS2010开发AutoCAD2006对应的arx文件_第11张图片

图(14)在【高级】,设置导入库

用VS2010开发AutoCAD2006对应的arx文件_第12张图片

图(15)在【浏览信息】选择卡,设置输出文件


参考文献:AutoCAD ObjectArx(VC)开发基础与实例教程. 张帆.朱文俊.2014年

                 

         http://bbs.mjtd.com/thread-84765-1-1.html





你可能感兴趣的:(VS2010,CAD,ObjectARX,vs2002)