gpt4 book ai didi

windows - Dependency Walker 父导入函数列表显示来自不同库的函数

转载 作者:可可西里 更新时间:2023-11-01 10:18:30 26 4
gpt4 key购买 nike

我正在尝试在我的项目中包含一个外部库(.lib 指向一个 .dll)。我正在使用 QT 在 Windows 上构建(它似乎使用 msvc2010 作为编译器)并且有:LIBS += <path>/<libraryName>.lib在我的 .pro 文件中。我在输出可执行文件的目录中有相应的 .dll 文件,因此可以找到它。当程序运行时,我从 QT 得到以下信息:

Starting (program name)...
The program has unexpectedly finished.
(program name) exited with code -1073741515
Searching around似乎这种类型的错误可能来自 .dll 文件在某些​​方面与您预期的不同,这似乎至少部分是这里的问题。当我用 dependency walker 打开我的程序时我可以看到我的 .dll 文件找到了,据我所知,其中的函数看起来是正确的。然而在 parent import function Pane 中的函数不一致或看起来不正确(我想我为什么会收到错误)。这些函数定义与我正在使用的另一个外部库中的函数完全匹配。

对我来说,这表明 .lib 文件不知何故不正确,但是我之前在不同的程序(不是内置于 QT 中)中使用过这对 .lib/.dll 文件并且它们工作正常。我也尝试从我的 .pro 文件中删除对 .lib 文件的引用,并且正确的函数调用提示(在找到的 .dll 文件中定义的这个库中的函数)。使用 Dumpbin.exe /EXPORTS 时,.lib 文件看起来与我所期望的完全一样。查看其内容。

任何关于 dependency walker 试图告诉我什么或我现在应该尝试什么的想法都会很棒。

编辑 2/8:我构建了一个 minimal example .它因相同的错误而停止,但是在 dependency walker 中没有显示来自另一个库的函数,而是没有显示预期的函数。

最佳答案

查看对您的最小示例给出的解释,似乎这里发生的是库没有 MinGW 函数调用(它们都是 MSVC 调用)。在库中找到的函数被正确列出,因为它们只是没有从其他编译器链接。至于为什么会出现不同的库函数,我猜这是 dependency walker 中的错误。

关于windows - Dependency Walker 父导入函数列表显示来自不同库的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35232813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com