明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2858|回复: 6

请问一下,c++ builder怎么和autocad连接,一定要通过object arx 吗?

[复制链接]
发表于 2003-4-13 15:28:00 | 显示全部楼层 |阅读模式
发表于 2003-4-14 13:12:00 | 显示全部楼层

这个问题几句话说不清楚

从理论上讲,除AutoLisp外,任何程序设计方法或模式要与ACAD连接,都应该通过ACAD提供的ActiveX接口。这个接口实际上就是将ACAD对象暴露(Expose)给其他外部程序。C++ Builder要与ACAD连接,必须通过ActiveX接口,使用ActiveX对象模型来访问和操作ACAD对象。ObjectARX提供了一系列LIB和H文件来访问ActiveX对象模型,要访问ACAD,你在程序中应该要包含部份ObjectARX类库和Head文件,但这样不知道是不是你说的“通过”ObjectARX。
C++ Builder我不熟悉,但一般来说,应该这样访问ACAD对象:
C++ Builder --> Windows API --> ACAD ActiveX接口 -->ACAD对象
我以前发过一个帖子,说明了用VC++获取ACAD应用程序(IAcadApplication)对象的方法,该对象是ActiveX对象模型的顶层对象,可以通过访问其成员函数或成员对象访问到全部ACAD对象。
以下是帖子地址:http://www.mjtd.com/bbs/dispbbs.asp?BoardID=16&RootID=14917&ID=14935&skin=1
 楼主| 发表于 2003-4-15 14:44:00 | 显示全部楼层

谢谢

你的意思是除了用AUTOLISP,其他什么VBA、VB、CB和AutoCAD连接都需要用ActiveX接口,是吗?
Object ARX的作用就是提供访问ActiveX对象模型的一系列LIB和H文件?

如果是这样的话,用C++Builder与AutoCAD连接的过程是不是就是这样:
C++Bulder->Object ARX->ActiveX->AutoCAD

是不是VB、VC++、C++BULDER、VBA的ActiveX接口都需要自己编写?
发表于 2003-4-21 08:34:00 | 显示全部楼层

关于ObjectARX和ActiveX

ARX本身就提供了用C++语言描述的ActiveX接口,从而我们可以在C++程序中通过调用ActiveX接口函数和类库使用ACAD对象。同样,VB、VBA和Visual Lisp都提供相应语言的ActiveX接口。在C++中使用ARX就是调用ActiveX接口函数或类库,因此,并不需要自己编写ActiveX接口(其实,编写这样的接口又谈何容易?)。当然,C++ Builder要使用ACAD ActiveX接口,也许需要做大量的相应编程环境设置工作。
 楼主| 发表于 2003-4-23 20:41:00 | 显示全部楼层

感激中

如果我用VC++,C++BUILDER或VB编写完程序以后,拿到另外一台并没有安装ObjectARX的计算机上能不能正常运行?
发表于 2003-4-24 08:39:00 | 显示全部楼层

Re:

用VC编写的ARX动态连接库程序通常不会有问题。C++ Builder、VB只能做COM编程,要在未安装ARX(其实这个并不重要,因为编译C++程序时,ARX的LIB文件和H头文件同时被编译。)和C++的机器运行,形成安装包时要包含必要的C++(或VB)库。
 楼主| 发表于 2003-4-27 19:38:00 | 显示全部楼层

many thanks

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-29 01:29 , Processed in 0.177788 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表