LoadLibrary是返回NULL还是错误代码< 32失败?

时间:2015-06-16 08:51:31

标签: winapi

MSDN documentation

  

如果函数成功,则返回值是模块的句柄。

     

如果函数失败,则返回值为NULL。要获取扩展错误信息,请致电GetLastError

Microsoft support的返回值列表小于32表示错误

  

API函数LoadLibrary加载DLL并返回句柄或错误代码。如果返回值小于32,则表示下面列出的错误之一。返回值大于或等于32表示成功,您应该调用FreeLibrary函数来卸载库。

第二篇文章最后一次在2003年进行了审核,并明确适用于Visual Basic 4.0。

什么是正确的? LoadLibrary返回!= 0>= 32取得成功?或者两者都正确,我错过了一些版本差异或与C风格界面不同的VB特定Windows API包装器的提示?

1 个答案:

答案 0 :(得分:7)

  • 在32位和64位Windows中,ffmpeg -i input_gif -b:v 2M -vcodec msmpeg4 -acodec wmav2 output_wmv 失败时返回LoadLibrary
  • 在16位Windows NULL中返回小于32的值以指示失败。

KB142814显然可以追溯到16位Windows天,如果你仔细观察,你会看到一个kb16bitonly关键字。我认为可以安全地假设你不再为16位Windows开发了!

Raymond Chen关于此事的一些相关文章:

LoadLibrary的现代文档位于:https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175.aspx,这是您问题中的第一个链接。它说:

  

返回值

     

如果函数成功,则返回值是模块的句柄。

     

如果函数失败,则返回值为NULL。要获取扩展错误信息,请调用GetLastError。