我使用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位并在那里正常工作之外,我还需要做些其他事情吗?
答案 0 :(得分:0)
它表明它很可能在工作。.她无法出于未知原因在QT中将其链接到我(我们在远程工作,我无法检查),但是她成功地将其动态链接,因此-m64实际上就足够了