我现在开发一个软件,要求读入几个厂商(厂商数不定)的数据(数据
格式不同),想设计一个接口,跟据厂商调用不同的接口程
序(dll文件),如何设计和实现
-------------------------签-----------名----------------------
家穷人丑,一米四九,小学文化,农村户口,薄田半亩,破屋一间,冷锅冷灶,
老婆没有,一年四季,苦不离口,今日上网,广征女友,革命道路,并肩携手,
搞点副业,办个户口,生个孩子,养条小狗。

解决方案 »

  1.   

    我们假定建四个工程:ITest(接口),D1,D2(实现),Test(测试工程)
    'ITest.Class1内容:
    Option Explicit
    Public Sub ReadData()
       '
    End Sub'D1.Class1内容,引用ITest工程
    Option ExplicitImplements ITest.Class1Private Sub Class1_ReadData()
        MsgBox "我是读厂商一的过程"
    End Sub'D2.Class1内容,引用ITest工程
    Option ExplicitImplements ITest.Class1Private Sub Class1_ReadData()
        MsgBox "我是读厂商二的过程"
    End Sub'Test工程中加一Form1,引用ITest工程
    Option ExplicitPrivate Sub Form_Load()
        Dim Iobj As ITest.Class1
        Dim obj As Object    Dim strFac As String    '保存有你选中的厂商
        strFac = "厂商二"
        Select Case strFac
            Case "厂商一"
                Set obj = CreateObject("D1.Class1")
            Case "厂商二"
                Set obj = CreateObject("D2.Class1")
        End Select
        Set Iobj = obj
        Iobj.ReadData
    End Sub说明:你要先定义一接口,然后用不同的DLL实现不同的功能
      

  2.   

    只要将所有的DLL函数都在模块中声明(注意不同DLL不要使用相同的函数名),在程序中直接调用不同的函数即可。
      

  3.   

    我现在的问题是我不知道厂商的确切数目,而且假定也不知道对应的dll文件
    我的设想是设计一个表,里面保存着厂商名和对应的DLL文件,然后再程序中
    动态加载,不知道是否可以实现
      

  4.   

    我上面的程序就可以满足你的要求呀!
    你只要一个表,保存厂商名和相应的类名
    只要有一个新的厂商,就新写的DLL,实现接口,注册
    然后:
    Set obj = CreateObject("你保存的类名")
    set iTest.Class1=obj
    就可以了