您的位置:首页 > 其它

AutoCAD 二次开发学习系列【2】 - 开始第一个工程

2012-12-02 18:11 447 查看
在了解了AutoCAD所支持的开发环境后,咱们开始做一个项目吧。这个是在Windows平台的,使用VS 2010。首先我把一些主要的步骤列出来,然后把其中碰到的问题总结一下。

准备环境:

首先下载AutoCAD的SDK,我用的是ObjectARX_2013_Win_64_and_32Bit.exe,可以在这里下载 http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=785550 我安装到了默认目录C:\ObjectARX 2013,大家可以看一下里面的目录结构,可以清楚到看到通用SDK包中所有的套路。有inc目录是放头文件的,然后也有一些头文件是分x86和x64的。还有分32bit和64bit的lib目录。肯定也会有sample目录,是给大家更快的捷径去了解ARX的开发。
推荐下载AutoCAD SDK的doc文档。这个在下载SDK的页面里有 【Download ObjectARX Documentation (100 MB)】。

开始新工程:

开发的ARX目标文件,在WIN平台上都是DLL,会被连接到AutoCAD程序的进程控件里,只不过它的建议后缀名改成了arx,和DLL是一样的。

创建的VS工程的类型也是动态链接库(Dynamic Library (.dll))。
针对不同的平台(platform)和配置(configuration)设置它的head文件搜索目录,库文件搜索目录,依赖的.lib文件。
代码生成时,需要的runtime library 是 多线程 DLL(multi-thread DLL)。
可以定义自己的导出文件(DEF),也可以图省事,直接用SDK中默认的DEF文件(./inc/AcRxDefault.def)。

编写代码

编写函数acrxEntryPoint,这个类似于DLL中的DLLMain,是ARX中所有信息进入的通道入口。
可以不用编写acrxGetApiVersion函数,因为在默认的rxapi.lib中已经实现了。
其他细节在ARX sdk的doc目录下,有arxdev.chm文件,里面的【Setting up an ObjectARX Project Using Microsoft Visual Studio】有详细介绍。

碰到的问题

生成的目标文件是个DLL,不是EXE。
在AutoCAD加载目标Arx时,说“acrxGetApiVersion 在 c:\users\......\arxdemo.arx 中未找到。”本打算在工程中声明并实现acrxGetApiVersion,但一直未找到其原型声明。后来发现直接使用SDK中默认的DEF文件,则可以把SDK中已实现的acrxGetApiVersion暴露出来。
arxdemo.arx 与此版本的 AutoCAD 不兼容。本以为是acrxGetApiVersion的返回值和AutoCAD的版本号不一致导致。后来发现原因是目标arx是32位的,而AutoCAD是64位的,自然是不兼容。(惭愧呀)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: