chenfresh
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2004-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1086回复:3

16位API调用32位DLL的疑问(Loadlibraryex32w)

楼主#
更多 发布于:2003-05-14 14:47
我需要调用一个32位的DLL,
我使用的是LoadlibraryEx32W(),GetProcAddressEx32W()...
DWORD FAR PASCAL LoadLibraryEx32W(LPCSTR lpszLibFile, DWORD hFile, DWORD dwFlags);

short WINAPI Control(lpdv, function, lpInData, lpOutData)
{
HMODULE ghdll=NULL; //reference to the dll
…………..
if(ghdll==NULL)
{
     ghdll=LoadLibraryEx32W(\"letest.dll\",NULL,0);
}
GetLastError();              //Result:  Error Code =6;
                          //        ghdll = NULL
请问是什么问题?
还有就是在2K下
调用同样的DLL(使用Loadlibrary()...),
ghdll=LoadLibrary(\"letest.dll\");
GetLastError();              //Result:  Error Code =2;
                            //        ghdll ≠ NULL
这又是为什么?

谢谢
bbear
驱动小牛
驱动小牛
  • 注册日期2002-08-20
  • 最后登录2009-04-16
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-15 19:08
我需要调用一个32位的DLL,

short WINAPI Control(lpdv, function, lpInData, lpOutData)
{
HMODULE ghdll=NULL; //reference to the dll
…………..
if(ghdll==NULL)
{
     ghdll=LoadLibraryEx32W(\"letest.dll\",NULL,0);
}
GetLastError();              //Result:  Error Code =6;
                          //        ghdll = NULL
请问是什么问题?
还有就是在2K下
调用同样的DLL(使用Loadlibrary()...),
ghdll=LoadLibrary(\"letest.dll\");
GetLastError();              //Result:  Error Code =2;
                            //        ghdll ≠ NULL
这又是为什么?

谢谢
 



先催帐一下 PATH_NAME \"letest.dll\", 保胝起
chenfresh
驱动牛犊
驱动牛犊
  • 注册日期2002-10-23
  • 最后登录2004-06-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-16 10:01
首先谢谢你的回答。
我试过将完整的路径写在程序中(即c:\\\\xxxx\\\\xxx.dll)
但是结果是一样的。
我尝试LOAD其他的32位DLL文件时,LoadLibraryEx32W()操作的系统报错不一样(Error code不一样),根据不同的DLL文件。
在WIN2K下
我写了一个32位的只调用这个DLL的小程序,调用是成功的。
但是当定义了UNICODE后,调用不成功,返回的ERROR CODE为6。
注:这个*.dll不是我自己写的,是调用别人写的。
请问可能是那出了问题
bbear
驱动小牛
驱动小牛
  • 注册日期2002-08-20
  • 最后登录2009-04-16
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-16 10:44
首先谢谢你的回答。
我试过将完整的路径写在程序中(即c:\\\\xxxx\\\\xxx.dll)
但是结果是一样的。
我尝试LOAD其他的32位DLL文件时,LoadLibraryEx32W()操作的系统报错不一样(Error code不一样),根据不同的DLL文件。
在WIN2K下
我写了一个32位的只调用这个DLL的小程序,调用是成功的。
但是当定义了UNICODE后,调用不成功,返回的ERROR CODE为6。
注:这个*.dll不是我自己写的,是调用别人写的。
请问可能是那出了问题



I see!

你要建立 (.DEF) file 在 APP16 上,
游客

返回顶部