新增一個def文件如:tmp.def
內容如下:
LIBRARY DiskFree.dll
DESCRIPTION 'This is xx's Dll'
EXPORTS
     DiskFree @1包含時加上別名:
Public Declare Function DiskFree Lib "DiskFree.dll" Alias "#1"(ByVal DirveX As Integer) As

解决方案 »

  1.   

    VC的INT对应VB的LONG
     
    Public Declare Function DiskFree Lib "DiskFree.dll" (ByVal DirveX As Long) As Long
      

  2.   

    先用regsvr32注册你的DLL文件 例 regsvr32 c:\windows\system\yourdll.dll
    在VB工程 引用中引用你的DLL,在声明区声明
    Public Declare Function yourDll Lib "yourDll.dll" Alias "#1"(ByVal DirveX As Integer)
      

  3.   

    谢谢COOL099,确实解决了DLL入口点的问题,可是VB工程的调用时出现运行时错误 '49',提示Bad calling convention,希望继续得到帮助!
      

  4.   

    在函数名称前加WINAPI,如
    unsigned long WINAPI DiskFree(unsigned int drive)
    好像是这样的,不果,我以前做的和你的dll类型可能不一样
      

  5.   

    这个问题我遇到过,应该在VC中声明为:
    extern "C" unsigned long __stdcall DiskFree(....)
    在.DEF文件
    EXPORTS
       DiskFree @1
    重新编译DLL
    在VB中使用即可
      

  6.   

    To sunnycai(飞鸟) :不是所有的DLL注册后都能导出函数,小弟做的这个标准的DLL能load成功,可是不能导出DiskFree函数,如果是ATL开发的类似COM控件的DLL肯定能注册成功,并能成功导出函数。我不知道VB对DLL开发规范有什么要求?