通过 TDM-GCC 在 32 位 windows 上编译 64 bt dll 的问题

problem with compiling 64 bt dll on a 32 bit windows via TDM-GCC

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

我发现 -m64 选项可以工作。然而,当我编译它并且她链接它并尝试调用我的函数时,它表明这个应用程序与这个插件 .dll 我已经制作了(在 32 位 windows 与 tdm-gcc -m64 选项) 静静地崩溃(程序结束并且没有生成输出)。

这有什么问题?我们正在做的测试很简单,就像导出一个 returns 232323 的函数并尝试在应用程序端接收和打印它 - 但仍然没有 work.My 猜测是这个 64 bit .dll 错误(dependency walker 显示对 kernel32 的依赖,不是 32 位特定的吗?)

我是否应该做一些比 -m64 更重要的事情来让我的插件编译到 64 位并在那里正常工作?

它表明它很可能工作.. 她不能在 QT 中 link 它出于未知原因对我来说(我们远程工作,我无法检查)但她成功地 link 动态编辑它所以它似乎 -m64 实际上就足够了