[原创]ObjectARX开发环境搭建之VS2010+ObjectARX2012Wizard+Addin工具条问题修复

目前ObjectARX版本越来越高,也越来越简化开发,如果需要同时开发低版本和高版本的ARX程序,就需要搭建批量编译环境,以满足ARX开发的需要。

批量编译的搭建网络上已经有了很多的教程,基本上都是基于vs2010+arx2012wizard,原因是arx2012的wizard有addin工具条,而高版本不再有此功能,对于新手来说,这是很不方便的。可是arx2012的wizard存在一些未修改的错误,导致addin工具条有的无法使用,甚至会引起vs2010的崩溃。经过我的研究发现了问题的所在,原本在QQ群的群问问已经发表了这个解决的帖子,但是QQ群新版更新后取消了这个应用,为了避免后面的人继续走这个弯路,特发此文。

ARX二次开发对vs的版本和arx的版本对应,具体的可以查看我的博文: https://www.cnblogs.com/edata/p/10802746.html

我建议新手选择vs2010+arx2012wizard进行初步开发,因为这个版本的wizard向导工具拥有工具条的的功能,而有的教程和书籍都使用了工具条来进行开发,所以工具条可以让新手更方便快捷的学习arx基础,(ps:高版本只要arx和vs对应,基本上配置更简单,几乎用向导生成就能开始开发了)。

如果代码写好了,就可以直接向上升级到最新版本,向下降级编译到cad2004,代码改动比较小。cad2000~2002 的sdk不一样不能直接使用,需要修改才能实现。套用一句古语:上可九天揽月,下可五洋捉鳖,所以用vs2010+wizard2012是非常不错的选择。

首先我们需要获得这个几个软件:vs2010 +sp1,objectARX2012 wizard,objectarx各个版本.vC助手,这些均可百度得到。

vs2010和vc助手安装也比较简单,都能百度得到,不再详细介绍。

objectarx各个版本的sdk基本上就是一个自解压包,这个需要对应你需要开发的版本。我们这里建议先安装arx2013 sdk或2014sdk, 使用autocad2013或者2014。(cad2010~2012也可以)

下载wizard2012 http://www.cnblogs.com/Yself/p/4765382.html 

objectARX2012wizard模板向导,这个是msi文件,如果系统是win7或者win8之类的系统,都需要管理员权限才能安装到位,否则会导致安装的向导不可用,具体的解决方式,可以参考:http://www.cnblogs.com/edata/p/6796025.html ,虽然此文说的是2015的向导,实际上2012的也是一样的要求和方法。

 objectARX2012wizard要求.net3.5环境,安装之前最好确认这个是否已经安装完成,一般你安装cad2012的时候会自动安装这个.net3.5.

如果是win7/win8 win10一定要用管理员模式安装,安装这个wizard几乎是一路next,就行。

安装完成后,我们需要先对这个wizard修复。

首先修复Addin工具条的图标,这个由于缺少中文资源文件引起的。

32系统打开路径 C:\Program Files\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxAddInWiz2010

win7或win8 win10 64位系统打开路径 C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxAddInWiz2010

下载zh-chs中文资源文件夹. 点击下载zh-chs

 解压到上面的目录即可。

 

完成后重新启动vs:就有了这个图标。

下面继续改造:打开

C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxWizMFCSupport\HTML\1033

C:\Program Files\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxWizMFCSupport\HTML\1033

右键打开default.htm文件并查找classid将CLASSID="CLSID:5A0C78A8-07D8-48cd-B1DD-BA9752C79F1C">

换成CLASSID="CLSID:19db9a07-5ca3-461e-9e7b-b370c91aba2e">

 

 保存文件,如果是win8 win10 可能要先保存到桌面或者其他位置,再复制回去覆盖(后面保存均相同)。

同理我们继续打开

C:\Program Files\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxMemVariableWiz\HTML\1033

或C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxMemVariableWiz\HTML\1033

右键打开default.htm文件并查找classid将CLASSID="CLSID:5A0C78A8-07D8-48cd-B1DD-BA9752C79F1C">

换成CLASSID="CLSID:19db9a07-5ca3-461e-9e7b-b370c91aba2e">

保存。。

继续打开

C:\Program Files\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxAppWiz\Scripts\1033

或者C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxAppWiz\Scripts\1033

右键打开default.js

查找到ManagedExtensions 默认在122行或者123行.将后面的值修改成 bDotNetModule ? managedAssembly: managedNotSet ;

下面是完整例子(这个是修复arx勾选net的错误修正方式):

config.ManagedExtensions =bDotNetModule ? managedAssembly: managedNotSet ;

 

 修改一下默认输出路径的多的一个斜杠

查找OutputFile 大概在168行

取消$(outdir)/的这个斜杠

参见图

 

按Ctrl+End键盘鼠标拖动到最下方

最最后一行开始倒数第三行,找到var szPath ="c:\\Program Files\\Autodesk\\AutoCAD 2011\\" ;这类似这句

将这个地址改成你的cad安装目录如 "D:\\Program Files\\Autodesk\\AutoCAD 2013\\" 注意路径的双斜线。

保存。。

 

 

 

--------------------------------------------------

更新修正 MIDL1012 错误 2019-07-26

修复新建COM服务器的ATL支持项目(OPM)的错误,

 midl : command line error MIDL1012: argument illegal for switch / header

修改为

这样新建的带有MIDL项目就不会提示错误这个错误了.

打开C:\Program Files (x86)\Autodesk\ObjectARX Wizards for AutoCAD 2012\ArxWizMFCSupport\Templates\1033目录下的

DockControlBar.h DockControlBar.cpp

修改 Create函数的第二个参数类型为 LPCTSTR,可以将Create成员函数声明放在 public下(可选)。

如果不放在public下,在类外不能使用这个create,如果不打算改写其他方式调用create,就改在public下。

 

 

 

 

 

完成后我们用vs2010开始新建项目。

 

 

 

 

 

 

 

 

启动成功后会自动加载arx,无需再用ap加载。直接在命令行输入hello就能执行这句hello arx 2013!!

首次运行可能会提示无法找到acad.exe的调试信息,打勾点是即可。

备注:acad.exe的pdb是调试acad.exe部分的,二次开发只需要调试自己的代码部分,不需要调试exe部分,而且桌子公司没有提供该pdb。

 

 

posted @ 2017-05-07 18:15  edata  阅读(6939)  评论(4编辑  收藏  举报