1、原则性问题,我用VB编写了一个简单的Activex dll生成结束后,新开VB的EXE窗口,请问我是否必须使用菜单工程里的引用找到这个DLL路径并引用它呢?有没有可能不用这种方式,而用VB语句替代这个引用过程呢?
2、如果以上问题可以用语句替代,我一下语句出错
VB创建的DLL语句如下
Public Function dlltest1() As String 
dlltest1 = "HELLO WORLD" 
End Function 
工程名字为vbmytestdll,类模块名字为mytestdll 
保存,生成DLL,名字为 vbmytestdll.dll VB新建EXE语句如下Option Explicit
Dim vbmytestdll As Object
Set vbmytestdll = CreateObject(vbmytestdll.mytestdll)
Dim testdll As mytestdll '类模块名字Private Sub Form_Load()
Set testdll = New mytestdll 'DLL的一个新实例
Me.Caption = testdll.dlltest1 '我的标题=返回DLL的HELLO WORLD
End Sub提示Set vbmytestdll = CreateObject(vbmytestdll.mytestdll)
无效外部过程3、同样另一在工程中引用了vbmytestdll后执行
Option Explicit 
Dim testdll As mytestdll'类模块名字 Private Sub Form_Load() 
Set testdll = New mytestdll 'DLL的一个新实例 
Me.Caption = testdll.dlltest1 '我的标题=返回DLL的HELLO WORLD 
End Sub 执行后成功达到目的请达人帮忙看下2的语句中有什么问题呢?如果1问题不成立,请无视2的问题,并给予回答谢谢。已经注册过regsvr32 "C:\VB-FORM\DLL测试2\vbmytestdll.dll" 并提示成功。

解决方案 »

  1.   

    trySet vbmytestdll = CreateObject("vbmytestdll.mytestdll")
      

  2.   


    回1楼 依然是提示无效外部过程 光标定格在SET上
      

  3.   

    Option Explicit
    Private Sub Form_Load()
        Dim vbmytestdll As Object
        Set vbmytestdll = CreateObject(vbmytestdll.mytestdll)
        Dim testdll As mytestdll '类模块名字
        Set testdll = New mytestdll 'DLL的一个新实例
         Me.Caption = testdll.dlltest1 '我的标题=返回DLL的HELLO WORLD
    End Sub
      

  4.   

    应该是这样的
    Option Explicit
    Private Sub Form_Load()
      Dim vbmytestdllt As Object
      Set vbmytestdllt = CreateObject("vbmytestdll.mytestdll")
    '  Dim testdll As vbmytestdllt '类模块名字
    '  Set testdll = New mytestdll 'DLL的一个新实例
      Me.Caption = vbmytestdllt.dlltest1 '我的标题=返回DLL的HELLO WORLD
    End Sub
      

  5.   


    这个方法我昨天也试过了 然后一直提示Dim testdll As mytestdll用户定义类型未定义是不是跟注册或者引用DLL有关呢?引用DLL测试下又提示变量with未定义,vbmytestdll是空值
      

  6.   


    感谢帮忙调试 看来是我语句里画蛇添足了
    谢谢你 
    最后问下 如果我没有注册regsvr32 也没有引用 是否以上语句就无法调用ACTIVEX DLL了呢?