【发布时间】:2019-07-31 01:18:53
【问题描述】:
我使用 32 位 Windows,而我的助手使用 64 位。我们都使用 gcc(我专门使用 tdm-gcc。据我所知,我的助手使用 qt,它也使用 gcc)。我想以简单的.dll 的形式编写一个非常简单的插件,供我的助手在她的应用程序内部使用。为此,我只需将 Windows 32(如 32 位 XP)的 .dll 编译为 Windows 64(如 win 7 或 10)的 .dll。
我发现-m64 选项可以工作。但是,当我编译它并且她链接它并尝试调用我的函数时,它显示这个应用程序使用这个插件.dll 我已经制作(在带有-m64 选项的 tdm-gcc 的 32 位窗口上)静默崩溃(程序结束并且不生成输出)。
这有什么问题?我们正在做的测试很简单,就像导出一个只返回 232323 的函数并尝试在应用程序端接收和打印它 - 但仍然不起作用。我的猜测是这个 64 位 .dll 是错误的(依赖walker 显示对 kernel32 的依赖,不是 32 位特定的吗?)
除了输入-m64 之外,我还应该做些什么来使我的插件编译为 64 位并在那里正常工作吗?
【问题讨论】:
标签: windows gcc dll 32bit-64bit tdm-mingw