通过TDM-GCC在

时间:2019-03-09 00:37:32

标签: windows gcc dll 32bit-64bit tdm-mingw

我使用32位窗口,而我的助手具有64位。我们俩都使用gcc(我专门使用tdm-gcc。我的助手使用qt,据我所知,qt也使用gcc)。我想以.dll的形式编写一个非常简单的插件,以供助手在她的应用程序内部使用。为此,我只需要将Windows 32(例如32位XP)的.dll编译为Windows 64(例如Win 7或10)的.dll

我发现-m64选项可以工作。但是,当我对其进行编译并将其链接并尝试调用我的函数时,它表明此应用程序已使用此插件.dll制作(在带有-m64选项的tdm-gcc的32位窗口上)静默崩溃(程序结束,并且没有生成任何输出)。

这是什么问题?我们正在做的测试很简单,例如导出一个仅返回232323的函数并尝试在应用程序端接收和打印它-但仍然无法正常工作。我的猜测是这64位.dll是错误的(Dependency Walker显示了对kernel32的依赖,不是32位特定的吗?)

除了将-m64用于使我的插件编译为64位并在那里正常工作之外,我还需要做些其他事情吗?

1 个答案:

答案 0 :(得分:0)

它表明它很可能在工作。.她无法出于未知原因在QT中将其链接到我(我们在远程工作,我无法检查),但是她成功地将其动态链接,因此-m64实际上就足够了