dll - ERROR_INVALID_ORDINAL 究竟是什么意思?

标签 dll winapi loadlibrary

LoadLibrary 函数返回错误代码 182。来自 MSDN:

ERROR_INVALID_ORDINAL: "操作系统无法运行 %1"

有没有人对这个错误有更好的描述?

最佳答案

非常隐晦的错误。然而,术语“序数”与 DLL 密切相关。 DLL 包含导出函数列表和导入函数列表。它依赖的其他 DLL。这些导出和导入通常有一个名称,但这不是必需的。他们总是有一个数字,这个数字就是“序数”。

要开始对此进行诊断,请使用 SDK 的 Dumpbin.exe 工具。首先运行这个:

Dumpbin /exports Blah.dll

并查看导出 list 。您应该看到序数和名称。如果全部检查出来,请运行
Dumpbin /imports Blah.dll

获取依赖项列表。很有可能它依赖于另一个 DLL 中的函数,这个 DLL 没有。反正就是这样。您可能可以通过使用 DependencyWalker 工具来减少工作量。如果第一步失败,那么在构建 DLL 时就会出现严重错误。如果第二步失败,那么您可能正在查看某种 DLL Hell 问题。

关于dll - ERROR_INVALID_ORDINAL 究竟是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3497301/

相关文章:

windows - VB - 以隐式方式链接 DLL

C++ 2 DLL 相互使用

c - 如果源代码在 win32 中是 UTF-8 编码的,如何显示 UTF-16 const 字符串?

c++ - 创建 HWND 的最简单方法

c# - DllImport 或 LoadLibrary 以获得最佳性能

C++——静态变量

c++ - 尝试在 CLion/CMake 中构建共享库

c++ - 如何检索 Windows XP 中的所有事件日志?

winapi - LoadLibrary 是否创建不同的实例?

c - matlab生成的thunk文件的用途是什么?