vba+dll形成的后遗症问题?
<P> 通过vba调用vb编制的dll,如果dll重新编译以后或者DLL的位置变化以后,注册表信息发生了变化,导致下次使用是丢失DLL,系统功能无法使用,只能在vbaman中手工定位DLL引用才能解决问题。</P><P> 各位是否有更好的办法?</P> 我也碰到同样问题,不光是dll位置变化会出现此问题,在同样位置重新注册dll文件都可能出现此问题。现在只能打开引用,先取消dll引用(尽管位置一样,仍然显示“丢失dll”),然后再次引用dll,才能用。楼主找到解决办法之后请告知一下,谢谢。 <P>大家共同努力,一定会有办法的!</P> 使用引用的方法不太好,还是使用后绑定的方式,先定义为对象,再Set到对应对象。 老大能不能给个简单的实例?这些术语看不懂~ 希望明总能给个详细点的例子或代码.我也碰过这种问题,很是头痛. <P>就是用CreateObject吧?</P> <P>好消息:该问题获得完美解决,谢谢<A name=48266><FONT color=#990000><B>mccad</B></FONT></A>兄提示。</P>
<P>Dim AppClass As Object<BR>Set AppClass = CreateObject("应用程序名.类名")<BR>AppClass.方法</P>
<P>举例:编制了DLL,应用程序名为Test,包换类CLASS1,CLASS1的方法有showMsg,显示"Hello,World"。</P>
<P>具体编程代码:</P>
<P>sub Test()</P>
<P>Dim AppClass As Object<BR>Set AppClass = CreateObject("Test.class1")<BR>AppClass.showmsg</P>
<P>end sub</P>
<P>执行则显示消息框"Hellow,World!"</P> 这样就不用再引用dll文件了?试试,谢谢。 <P>太好了,不用再引用dll文件了。</P>
<P>另外有一个问题,如果系统在两个不同的地方注册了两个不同的test.dll,那么用的是那个文件呢?</P>
页:
[1]
2