自己做了一个com组件,生成dll文件,假设叫comtest.dll,里面有一个函数有两个返回值,就象这样:
[x,y]=fun(val)现在我要在别的程序中引用这个dll文件,声明格式是否和API函数一样,如:
    Private Declare Function fun Lib "comtest1.dll" 。
另外,在程序中应该怎样调用这个fun函数,并取得它的两个返回值x和y呢?请高手详细指点,最好能给出代码示例,谢谢!!

解决方案 »

  1.   

    //自己做了一个com组件,生成dll文件//现在我要在别的程序中引用这个dll文件,声明格式是否和API函数一样你需要做的是引用使用(工程-引用 浏览 选中该文件 确定)
    而不是声明使用(因为你的com组件不是标准的dll)
      

  2.   

    如果是VC等制作的标准DLL就调用,如果是ActiveX Dll就要引用,总之你试一试
      

  3.   

    你说的意思是 ActiveX DLL ,这个需要引用就行了
    然后在代码中直接声明就可以使用了
      

  4.   

    引用到工程里,然后在工程里建立這個com的新的對象
      

  5.   

    具体是这样的,举例说明
    你做了一个组件A,里面和EXE工程一样有窗体1、模块1、类模块1
    因为资源大都是本地引用所以你的窗体资源、模块中的函数为类模块中的
    函数所引用
    当你引用了这个组件A之后,可以这样声明
    Private comObject As New A.类模块1
    然后那个类模块1中的函数就可以和正常调用函数一样使用,当然也可以调用
    类模块中的窗体等等资源常用的例子就是银行系统常用的安全验证组件
      

  6.   

    至于使用函数返回你需要的数据结构不用细说了吧
    比如你说的返回[x,y],那首先你要定义这样的数据结构,数组、结构变量、甚至
    一个类都可以
    然后就
    你的数据结构=comObject.Fun(val) 就行了
      

  7.   

    举个例子新建ACTIVE DLL工程,工程名COM_Test,类名clsAdd,类中粘贴代码:Option ExplicitPublic x, y As IntegerPublic Function myAdd() As IntegermyAdd = x + yEnd Function编译得到COM_Test.dll,注册组件Option ExplicitDim myAdd As New clsAddPrivate Sub Command1_Click()With myAdd    .x = Val(Text1.Text)    .y = Val(Text2.Text)    Text3.Text = .myAddEnd WithEnd SubPrivate Sub Command2_Click()Set myAdd = NothingEndEnd SubPrivate Sub Form_Load()Set myAdd = New clsAddEnd Sub然后编译生成COM_CLIENT.EXE,将这个文件和刚才导出的两个文件复制到客户机上(WIN2000),在客户机上安装myadd.msi,再运行COM_CLIENT.EXE试试!注意在客户机登录的用户要有安装和访问服务器组件的权限!我的那个例子就是类似的