您的位置:首页 > 其它

使用VC6调用DLL出现的问题(使用LoadLibrary返回值为0)

2005-04-14 17:16 501 查看
2005-04-14:

    今天在程序实现的时候,使用VC6向导建立一个简单的MFC工程,在InitInstance函数中加上如下代码:

   HINSTANCE HInst;

 HInst = LoadLibrary("IsupGW.dll");

 if (HInst ==0)

 {

  ::AfxMessageBox("Load vaSS7GWISUP.dll Failed!!!");

  ::TerminateProcess(GetCurrentProcess(),0);

  return false;

 }

 PInitGW InitGw;

 PExitGW ExitGw;

 InitGw = (PInitGW)GetProcAddress(HInst,"InitGW");

 InitGw(fSendData, NULL, NULL);

 ExitGw = (PExitGW)GetProcAddress(HInst,"ExitGW");

   上述的调用是没有问题的,但是LoadLibrary以后的返回值为0。并且保证DLL肯定存在。

   目前问题出现的原因不明!!

   补充1:但是我使用一个工具“Dll函数查看器V2.0”倒是可以看见有两个函数(InitGW和ExitGW ). 

   补充2:

  Loadlibrary返回错误代码的意义

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

    错误代码         意        义

--------------------------------------

     0        系统内存不够,可执行文件被破坏或调用非法

     2        文件没有被发现

     3        路径没有被发现

     5        企图动态链接一个任务或者有一个共享或网络保护错

     6        库需要为每个任务建立分离的数据段

     8        没有足够的内存启动应用程序

     10         Windows版本不正确

    11        可执行文件非法。或者不是Windows应用程序,或者在.EXE映

                     像中有错误

    12        应用程序为一个不同的操作系统设计(如OS/2程序)

       13        应用程序为MS DOS4.0设计

    14        可执行文件的类型不知道

    15        试图装载一个实模式应用程序(为早期Windows版本设计)

       16        试图装载包含可写的多个数据段的可执行文件的第二个实例

    19        试图装载一个压缩的可执行文件。文件必须被解压后才能被装裁

    20        动态链接库文件非法

    21        应用程序需要32位扩展

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   

  根据错误代码看来,应该是DLL本省的问题了,但是DLL本省就是从EXE文件转换过来的呀!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐