请问,如果有一个a.dll文件如下(此函数可能不符合语法要求,请指出并帮忙修改,谢谢):
                
                int test(int word) //word是从vb中传过来的参数
                {
                    word=2;
                    return(word);
                }怎样才能在vb中调用(用一个按钮click事件),并且在文本框(test1)中正确
显示出从a.dll中返回的参数word的值(即2)。
*a.dll的路径为D:\a.dll

解决方案 »

  1.   

    VB调用dll函数库时一般采用值传递(byval)方式,因此C原型中不要出现像“word=2”语句;如果要改变VB所传递的参数的话,VB调用函数采用引用传递方式(byref)
    函数在公共模块中的申明如下:
    public declare function test lib "D:\a.dll"(byval word as long ) as long窗体中的代码如下:private sub command1_click()  text1.text=test(2)
    end sub
      

  2.   

    谢谢,可是我在调试时出现“实时错误‘48’,找不到a.dll文件”怎样解决呢?
      

  3.   

    http://www.china-askpro.com/msg1/qa72.shtml
      

  4.   

    还是不行,我把a.dll移到C:\WINDOWS\system\中,并改了declare语句也是找不到
    a.dll文件,请各位帮帮忙,我真的很菜
      

  5.   

    //还是不行,我把a.dll移到C:\WINDOWS\system\中,你把你的dll文件放到C:\WINDOWS\system32\下试试
      

  6.   

    常有的事情,你如果一边在那里重新编译dll,一边用vb调试,就经常会发生一些莫名其妙的错误比如找不到文件,最好是把dll写好了保证没有错了,在重启一次机器,再调试vb程序