相关疑难解决方法(0)

C有标准的ABI吗?

其他地方的讨论:

C++没有标准的ABI

但C也不是吗?

在任何给定的平台上它几乎都可以.如果没有语言交流,那么作为语言间交流的通用语言是没有用的.

你对此有何看法?

c abi

29
推荐指数
6
解决办法
2万
查看次数

DLL LNK2019 错误(未解决的外部错误 __imp)

好吧,我基本上继承了一堆我被告知要修复的代码,因为它几个月前曾经可以工作,但现在不行。程序本身似乎充满了链接错误,我能够修复其中的一些错误。但是,我遇到了 LNK2019 未解决的外部 _ imp 错误,其中 main 中使用的某些功能未解决。由于“ _imp”,我假设这是与从 .dll 或 .lib 文件导入相关的问题。

首先,我有三个 .lib 文件,我相信它们可以正确地将它们导入到 VS2010 中,并且我已将平台配置为 64x。还有与 .lib 文件对应的 .dll 文件。包含这些错误缠身函数声明的 .h 文件包含类似

ILAPI void ILAPIENTRY ilDeleteImage(const ILuint Num);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我猜测该定义是在 .dll 文件中定义的,该文件不是我自己写的,所以我不确定。但由于这是在我之前工作的代码,我相信我收到此错误是因为链接器找不到定义而不是 def/decl 不匹配的原因。

当我将鼠标悬停在 ILAPI 上时,它指出:“ILAPI __declspec(dllimport)” 我目前的猜测是程序导入了 .lib 文件,而 .lib 文件使用 .dll 文件来获取函数的定义。我相信我正在导入 .lib 文件,因为编译器不再一直告诉我它找不到特定的 .lib 文件。但是我担心它可能没有连接 .dll 文件。我有些不确定。我已经打开了 .lib 文件,并且 .lib 文件包含给出错误的函数的名称。我还使用了 Dependency walker 程序来查看我的 DLL 文件,它给了我以下一些错误:

错误:由于隐式依赖模块中缺少导出函数,至少有一个模块具有未解析的导入。

错误:找到具有不同 CPU 类型的模块。

根据其他人的评论,我觉得我可以忽略第二个错误。但我不确定第一个错误。我也不确定这是否是问题的根本原因。它可能是也可能不是。

我还使用 VS cmd 和依赖项walker 查看了 .lib 文件的内部,似乎找不到的函数的名称列在 .lib 和 .dll 之一中。

在配置方面,我在发布模式 x64 …

c++ dll unsatisfiedlinkerror

2
推荐指数
1
解决办法
9673
查看次数

标签 统计

abi ×1

c ×1

c++ ×1

dll ×1

unsatisfiedlinkerror ×1