Oceanable 发表于 2019-7-28 19:11:35

关于找不到 AutoCAD 2007 Library 问题

在 win10 系统下同时安装了 AutoCAD 2007 64 Bit 和 2008 64 Bit 后发现 VBA 工程引用里面找不到 2007 的 library 了,2008 的 library 是在的。在VB6里面情况类似,也是只有2008的类库,于是只能选择2008的类库来编译DLL。生成了DLL在CAD 2007里面运行,总是报错:对象类型不匹配。

在win7 32位系统的时候也试过丢失2007的类库,但是选择2008的类库编译所生成的DLL在CAD 2007环境下运行是很正常的,呵呵。。。

问题出在哪里?:dizzy::dizzy::dizzy:

风言无际 发表于 2019-7-28 20:06:45

2007 2008 2009都是R17的,只是小版本不同,所以类库同时只有一个存在,至于在WIN10上会出错,可能是权限的问题,你试着把2007的acad.exe主程序设置为以管理员身份运行看看能不能解决问题。

Oceanable 发表于 2019-7-29 08:15:22

风言无际 发表于 2019-7-28 20:06
2007 2008 2009都是R17的,只是小版本不同,所以类库同时只有一个存在,至于在WIN10上会出错,可能是权限的 ...

:o 好的,我试试 :handshake

Oceanable 发表于 2019-7-29 12:58:15

尝试了管理员身份运行 cad 2007,还是不行。:(
搜索了一下,2007 2008 确实用的是同一个类库,但是文件大小有点点差异(如附图)

Oceanable 发表于 2019-8-2 17:36:55

风言无际 发表于 2019-7-28 20:06
2007 2008 2009都是R17的,只是小版本不同,所以类库同时只有一个存在,至于在WIN10上会出错,可能是权限的 ...

对于2007我这么写:Set AcadApp = GetObject(, "AutoCAD.Application.17.0")
对于2008我这么写:Set AcadApp = GetObject(, "AutoCAD.Application.17.1")

这应该没错吧。。。。:dizzy:

风言无际 发表于 2019-8-3 13:13:28

改成Set AcadApp = GetObject(, "AutoCAD.Application"),别带版本号试试

Oceanable 发表于 2019-8-3 22:32:18

风言无际 发表于 2019-8-3 13:13
改成Set AcadApp = GetObject(, "AutoCAD.Application"),别带版本号试试

刚开始我就是采用这个方式,这种方式的问题在于如果电脑上安装有多个版本的cad,比如我的电脑上同时有2007 2008 2012,,就会出现get错cad版本,或者创建一个新的cad app 的问题。

我现在打算试试 getObject(打开的DWG文件全名,Autocad.application),,,,
页: [1]
查看完整版本: 关于找不到 AutoCAD 2007 Library 问题