我用VC++编写了一个DLL
然后把DLL放在和我的VB所制作EXE相同的文件夹,
调用DLL时代码是这么写的Private Declare Function chessinitial Lib "Quoridor.dll" (ByVal bolgo As Boolean) As Integer
Private Declare Function sendchess Lib "Quoridor.dll" (ByVal x As Long, ByVal y As Long, ByVal side As Long) As Long
Private Declare Function sendfenceh Lib "Quoridor.dll" _
 (ByVal posx As Long, ByVal posy As Long, ByVal side As Long) As Long
Private Declare Function sendfencev Lib "Quoridor.dll" _
(ByVal posx As Long, ByVal posy As Long, ByVal side As Long) As Long
Private Declare Function AIGO Lib "Quoridor.dll" () As aichess
在本机运行毫无问题
但是打包给我朋友
他在他那台机器上运行,就提示Runtime-error:53,找不到XXXX.DLL的错误信息我仔细检查过该DLL,并没有什么特殊的依赖项,这是怎么回事呢?

解决方案 »

  1.   

    你自已换台机子测试一下。也可以先编译成exe文件,再给你的朋友测试一下。
      

  2.   

    用depends看下是不是打包的时候有丢失了
    或者把缺失的dll找到发给你朋友放到system32下面再注册下试试
      

  3.   

    现在有很多人装的操作系统是Ghost精简版的,为了节省空间会把一些部件给去掉,你先搜索一下丢失的dll是否存在,存在就注册一下,不存在你就要考虑打包时带上
      

  4.   


    将Quoridor.dll放到系统目录下,不然,要设置环境变量
      

  5.   

    找到原因了
    原来要把DLL编译为RELEASE不能DEBUG