xxxtttxxx 发表于 2008-5-6 18:02:00

vb连接cad,getobject,createobject失效时如何解决?

<p>请教高手一个问题:</p><p>在个别cad2004中,vb软件getobject和createobject无效,</p><p>应该如何解决。</p><p></p><p>我仔细考虑了几个方面的解决方法:</p><p>1. 重装autocad,有效可能性比较大,但是你不太可能要求你的所有连接出错的用户都重新安装。</p><p>2. 添加缺失的注册表项。据说这两个函数是通过注册表项工作的,但是到底是不是注册表的问题,还无法确定。</p><p>如果可以添加解决,添加哪几项呢?</p><p>3. 找到vb连接到autocad时候用的那个activex ,不知道有没有高手知道这个文件的路径和名字。如果知道</p><p>我就可能可以通过引用,用new函数创建对该activex对象的引用,或者getobject函数的pathname连接到cad。</p><p></p><p>恳请高手指教!</p>

qwh923820 发表于 2020-5-22 13:50:03

年年岁岁花相似,岁岁年年错不同。终于找到问题的原因了。是盗版软件的原因,注册表里面“AutoCAD.Application” 可能变成了“AutoCAD.Application.20.1"。解决方法
CreateObject("AutoCAD.Application")改为CreateObject("AutoCAD.Application.20.1")
其中20.1是版本号,不同盗版的版本号不同,注意查看注册表

qwh923820 发表于 2020-5-22 12:47:30

bios8086 发表于 2008-5-9 17:04
是根本无法得到COM对象的引用!

遇到一样的问题

xxxtttxxx 发表于 2008-5-7 20:16:00

有哪位版主老哥知道,麻烦提点一下啊!!!

home 发表于 2008-5-8 12:44:00

<p>连接autocad时,应该连接的是这个文件C:\Program Files\Common Files\Autodesk Shared\acax16chs.tlb</p><p></p><p>但是怎么连接我不会,关注这个问题!</p>

sailorcwx 发表于 2008-5-8 15:18:00

你的CAD是不是绿色板的

xxxtttxxx 发表于 2008-5-8 20:53:00

<p>经过研究,vb连接的并不是tlb文件,这个只是表示所连接的dll文件中的对象,方法等。</p><p></p><p>我的cad不是绿色版,但是可能有人是的。vba对autocad有依赖性,这一点在开发帮助里面有提到</p><p>就是安装cad后,再安装,卸载office的有vba的程序,都可能导致vba出错,需要重新安装cad。</p><p></p><p>目前还没有办法研究究竟是那个注册表项管到了createobj,不知道有达人知道吗?</p><p></p>

xxxtttxxx 发表于 2008-5-9 12:11:00

<p>管到createobj的的注册表项是找到了,不过没有用,</p><p>因为每个class 都有一个ID,在不同的电脑里面这个ID可能是不同,</p><p>而且这个ID还要连接到其他注册表项,</p><p>要想通过导入注册表的方法来使原来不成功的引用成功,好像不太现实。</p><p></p><p>当删除该注册表项时,createobj和getobj都失效了。</p><p></p>

bios8086 发表于 2008-5-9 12:55:00

<p>请问acadapp = CreateObject("AutoCAD.Application")&nbsp; 为什么不能启动AUTOCAD</p><p>当打开CAD程序的时候 却可以</p><p>&nbsp;acadapp = GetObject(, "autocad.application") </p><p></p><p>请问这个问题怎么解决!</p>

cag 发表于 2008-5-9 13:17:00

<p>加acadapp.Visible=true</p>

bios8086 发表于 2008-5-9 15:15:00

acadapp.Visible=true加了没用

bios8086 发表于 2008-5-9 17:04:00

<p>是根本无法得到COM对象的引用!</p>
页: [1] 2
查看完整版本: vb连接cad,getobject,createobject失效时如何解决?