明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4890|回复: 14

vba+dll形成的后遗症问题?

  [复制链接]
发表于 2005-7-28 00:19:00 | 显示全部楼层 |阅读模式

         通过vba调用vb编制的dll,如果dll重新编译以后或者DLL的位置变化以后,注册表信息发生了变化,导致下次使用是丢失DLL,系统功能无法使用,只能在vbaman中手工定位DLL引用才能解决问题。

        各位是否有更好的办法?

发表于 2005-7-28 19:40:00 | 显示全部楼层
我也碰到同样问题,不光是dll位置变化会出现此问题,在同样位置重新注册dll文件都可能出现此问题。现在只能打开引用,先取消dll引用(尽管位置一样,仍然显示“丢失dll”),然后再次引用dll,才能用。楼主找到解决办法之后请告知一下,谢谢。
 楼主| 发表于 2005-7-28 21:20:00 | 显示全部楼层

大家共同努力,一定会有办法的!

发表于 2005-7-28 22:34:00 | 显示全部楼层
使用引用的方法不太好,还是使用后绑定的方式,先定义为对象,再Set到对应对象。
发表于 2005-7-28 23:24:00 | 显示全部楼层
老大能不能给个简单的实例?这些术语看不懂~
发表于 2005-7-29 21:04:00 | 显示全部楼层
希望明总能给个详细点的例子或代码.我也碰过这种问题,很是头痛.
 楼主| 发表于 2005-7-29 22:02:00 | 显示全部楼层

就是用CreateObject吧?

 楼主| 发表于 2005-7-29 22:37:00 | 显示全部楼层

好消息:该问题获得完美解决,谢谢mccad兄提示。

Dim AppClass As Object
Set AppClass = CreateObject("应用程序名.类名")
AppClass.方法

举例:编制了DLL,应用程序名为Test,包换类CLASS1,CLASS1的方法有showMsg,显示"Hello,World"。

具体编程代码:

sub Test()

Dim AppClass As Object
Set AppClass = CreateObject("Test.class1")
AppClass.showmsg

end sub

执行则显示消息框"Hellow,World!"

发表于 2005-7-30 16:42:00 | 显示全部楼层
这样就不用再引用dll文件了?试试,谢谢。
发表于 2005-7-30 18:40:00 | 显示全部楼层

太好了,不用再引用dll文件了。

另外有一个问题,如果系统在两个不同的地方注册了两个不同的test.dll,那么用的是那个文件呢?

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

本版积分规则

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

GMT+8, 2025-2-22 05:23 , Processed in 0.174613 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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