LoadLibrary return NULL 或错误代码 < 32 是否失败?
Does LoadLibrary return NULL or an error code < 32 on failure?
If the function succeeds, the return value is a handle to the module.
If the function fails, the return value is NULL
. To get extended error information, call GetLastError
.
而 Microsoft support 有一个 return 值小于 32 的列表,表示错误
The API function LoadLibrary
loads a DLL and returns either a handle or an error code. If the return value is less than 32, it indicates one of the errors listed below. A return value greater than or equal to 32 indicates success and you should call the FreeLibrary
function to unload the library.
第二篇文章最后一次审阅是在 2003 年,明确适用于 Visual Basic 4.0。
什么是正确的? LoadLibrary
returning != 0
或 >= 32
是否成功?或者两者都是正确的,我缺少一些关于版本差异的提示或与 C 样式接口不同的 VB 特定 Windows API 包装器?
- 在 32 位和 64 位中 Windows、
LoadLibrary
returns NULL
失败。
- 在16位中Windows
LoadLibrary
returns一个小于32的值表示失败。
KB142814 显然是从 16 位 Windows 天开始的,如果你仔细观察,你会看到一个 kb16bitonly 关键字。我认为可以安全地假设您不再为 16 位开发 Windows!
关于此事,陈峰的一些相关文章:
- What is the difference between HINSTANCE and HMODULE?
- What can I do with the HINSTANCE returned by the ShellExecute function?
LoadLibrary
的现代文档在这里:https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175.aspx,这是您问题中的第一个 link。它说:
Return value
If the function succeeds, the return value is a handle to the module.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
If the function succeeds, the return value is a handle to the module.
If the function fails, the return value is
NULL
. To get extended error information, callGetLastError
.
而 Microsoft support 有一个 return 值小于 32 的列表,表示错误
The API function
LoadLibrary
loads a DLL and returns either a handle or an error code. If the return value is less than 32, it indicates one of the errors listed below. A return value greater than or equal to 32 indicates success and you should call theFreeLibrary
function to unload the library.
第二篇文章最后一次审阅是在 2003 年,明确适用于 Visual Basic 4.0。
什么是正确的? LoadLibrary
returning != 0
或 >= 32
是否成功?或者两者都是正确的,我缺少一些关于版本差异的提示或与 C 样式接口不同的 VB 特定 Windows API 包装器?
- 在 32 位和 64 位中 Windows、
LoadLibrary
returnsNULL
失败。 - 在16位中Windows
LoadLibrary
returns一个小于32的值表示失败。
KB142814 显然是从 16 位 Windows 天开始的,如果你仔细观察,你会看到一个 kb16bitonly 关键字。我认为可以安全地假设您不再为 16 位开发 Windows!
关于此事,陈峰的一些相关文章:
- What is the difference between HINSTANCE and HMODULE?
- What can I do with the HINSTANCE returned by the ShellExecute function?
LoadLibrary
的现代文档在这里:https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175.aspx,这是您问题中的第一个 link。它说:
Return value
If the function succeeds, the return value is a handle to the module.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.