明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2302|回复: 7

关于axdb15.dll的注册问题!

[复制链接]
发表于 2003-5-10 21:17:00 | 显示全部楼层 |阅读模式
在本站的二次开发栏目中的ObjectDBX函数中,有一个是用Vlisp调用ObjectDBX接口实现搜索指定目录下具有指定图块名称的图形,其中下面一段是注册ObjectDBX接口所需要的axdb15.dll文件,但是我运行时老出现如下错误,我自己修改了一下程序
(startapp "regsvr32.exe" (strcat "/s \"" server "\""))
去掉了"/s",这样系统会有提示
"LoadLibrary(axdb15.dll) failed-一个或数个参数无效",
但是我从网上找到的资料好像注册axdb15.dll应该没问题,难道是我的AutoCAD的版本问题吗,我用的是D版的AutoCAD2000中文版,斑竹给指教一下把。

(vl-load-com)
;; ObjectDBX ProgID:
(setq *objectdbx* "ObjectDBX.AxDbDocument")
;; Register ActiveX server (dll/ocx)
;; This requires RegSvr32.exe to be on the DOS path
(defun RegServer (server)
   (startapp
      "regsvr32.exe"
      (strcat "/s \"" server "\"")
   )
)
;; Get CLSID from ProgID
(defun GetClassID (ProgID)
   (vl-registry-read
      (strcat "HKEY_CLASSES_ROOT\\" progid "\\CLSID")
   )
)
;; Register ObjectDBX ActiveX services,
;; if not already registered.
(defun RegisterObjectDBX ( / server)
   (cond
      (  (GetClassID *ObjectDBX*))
      (  (not (setq server (findfile "AxDb15.dll")))
         (alert "Error: Can't locate ObjectDBX Library (AxDb15.dll)"))
      (t (regserver server)
         (or
            (GetClassID *ObjectDBX*)
            (alert "Error: Failed to register ObjectDBX ActiveX services.")
         )
      )
   )
)
发表于 2003-5-12 11:50:00 | 显示全部楼层

可试试以下方法,但不保证是否有效。

本帖最后由 作者 于 2003-5-12 11:50:33 编辑

可试试以下方法,但不保证是否有效。
把以下储存为檔名dbx 2000.reg
再执行注册<点选档案:dbx 2000.reg注册>

REGEDIT4

[HKEY_LOCAL_MACHINE\Software\CLASSES\ObjectDBX.AxDbDocument]
@="AxDbDocument Class"

[HKEY_LOCAL_MACHINE\Software\CLASSES\ObjectDBX.AxDbDocument\CLSID]
@="{6D4C7DF2-704F-11D2-B6D2-0060B087E235}"

[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{6D4C7DF2-704F-11D2-B6D2-0060B087E235}]
@="AxDbDocument Class"

[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{6D4C7DF2-704F-11D2-B6D2-0060B087E235}\ProgID]
@="ObjectDBX.AxDbDocument"

[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{6D4C7DF2-704F-11D2-B6D2-0060B087E235}\VersionIndependentProgID]
@="ObjectDBX.AxDbDocument"

[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{6D4C7DF2-704F-11D2-B6D2-0060B087E235}\Programmable]

[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{6D4C7DF2-704F-11D2-B6D2-0060B087E235}\InprocServer32]
@="C:\\PROGRAM FILES\\AUTOCAD 2000\\AXDB15.DLL"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\Software\CLASSES\CLSID\{6D4C7DF2-704F-11D2-B6D2-0060B087E235}\TypeLib]
@="{6D4C7DE5-704F-11D2-B6D2-0060B087E235
[此贴子已经被作者于2003-5-12 11:47:41编辑过]
 楼主| 发表于 2003-5-13 15:14:00 | 显示全部楼层

呵呵,看来大家注册axdb15.dll都有问题呀!

要不龙龙仔怎么给了一个这么复杂的注册表文件呀,这样当然是一种办法,但是能不能通过给定注册时的参数进行注册呀,龙龙仔知道用regsvr32注册时到底需要什么注册参数吗,多谢了。
发表于 2003-5-14 08:39:00 | 显示全部楼层

在dos模式下 regsvr32看看就可知道!

 楼主| 发表于 2003-5-14 15:35:00 | 显示全部楼层

龙龙仔没有明白我的意思呀!

regsvr32的参数我当然知道(-s,-t...),问题是在使用regsvr32 axdb15.dll时,会出现
LoadLibrary("axdb15.dll") failed-一个或数个参数无效
的错误提示,我是想问提示中所说的一个或数个参数是指的什么,
能否通过提供提示中的一个或数个参数实现axdb15.dll的成功注册?
发表于 2003-5-14 17:05:00 | 显示全部楼层

你有用我的方法註冊嗎?

 楼主| 发表于 2003-5-14 21:15:00 | 显示全部楼层

龙龙仔我试过了,还是不行。

当使用如下语句时还是出现“Automation 错误”的错误提示。
(setq *acad* (vlax-get-acad-object))
;这句没错
(setq dbxDoc
      (vla-GetInterfaceObject
         *acad*
         "ObjectDBX.AxDbDocument"
      )
)
;这句出错了。
发表于 2003-5-15 14:56:00 | 显示全部楼层

注册不了的话就改用autocad2004吧!因AxDb16.dll是自动注册的

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

本版积分规则

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

GMT+8, 2024-11-26 11:31 , Processed in 0.179747 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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