请问一下,c++ builder怎么和autocad连接,一定要通过object arx 吗?
这个问题几句话说不清楚
从理论上讲,除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
谢谢
你的意思是除了用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接口都需要自己编写?
关于ObjectARX和ActiveX
ARX本身就提供了用C++语言描述的ActiveX接口,从而我们可以在C++程序中通过调用ActiveX接口函数和类库使用ACAD对象。同样,VB、VBA和Visual Lisp都提供相应语言的ActiveX接口。在C++中使用ARX就是调用ActiveX接口函数或类库,因此,并不需要自己编写ActiveX接口(其实,编写这样的接口又谈何容易?)。当然,C++ Builder要使用ACAD ActiveX接口,也许需要做大量的相应编程环境设置工作。感激中
如果我用VC++,C++BUILDER或VB编写完程序以后,拿到另外一台并没有安装ObjectARX的计算机上能不能正常运行?Re:
用VC编写的ARX动态连接库程序通常不会有问题。C++ Builder、VB只能做COM编程,要在未安装ARX(其实这个并不重要,因为编译C++程序时,ARX的LIB文件和H头文件同时被编译。)和C++的机器运行,形成安装包时要包含必要的C++(或VB)库。many thanks
页:
[1]