-1

我使用 32 位 Windows,而我的助手使用 64 位。我们都使用 gcc(我专门使用 tdm-gcc。据我所知,我的助手使用 qt,它也使用 gcc)。我想以一种简单的形式编写一个非常简单的插件,.dll供我的助手从她的应用程序内部使用。为此,我只需将我.dll的 for windows 32(如 32 位 XP)编译为.dll适用于 windows 64(如 win 7 或 10)。

我发现该-m64选项可以工作。但是,当我编译它并且她链接它并尝试调用我的函数时,它显示这个应用程序和.dll我制作的这个插件(在带有该-m64选项的 tdm-gcc 的 32 位窗口上)静默崩溃(程序结束并且没有生成输出)。

那有什么问题?我们正在做的测试很简单,就像导出一个只返回的函数232323并尝试在应用程序端接收和打印它 - 但仍然不起作用。我的猜测是这个 64 位.dll是错误的(依赖步行器显示对 kernel32 的依赖,它不是 32 位特定的吗?)

-m64除了让我的插件编译为 64 位并在那里正常工作之外,我还应该做些什么吗?

4

1 回答 1

0

它表明它很可能有效.. 她无法在 QT 中将其链接到我的未知原因(我们远程工作,我无法检查),但她成功地动态链接它,所以看起来 -m64 实际上就足够了

于 2019-03-26T20:32:30.663 回答