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

通过TDM-GCC在32位windows上编译64 bt dll时出现问题,windows,gcc,dll,32bit-64bit,tdm-mingw,Windows,Gcc,Dll,32bit 64bit,Tdm Mingw,我使用32位windows,我的助手使用64位windows。我们都使用gcc(我特别使用tdmcc。我的助手使用qt,据我所知,qt也使用gcc)。我想以simple.dll的形式编写一个非常简单的插件,供我的助手从她的应用程序内部使用。为此,我只需将适用于windows 32(如32位XP)的.dll编译为适用于windows 64(如win 7或win 10)的.dll 我发现-m64选项可以工作。然而,当我编译它,她链接它并尝试调用我的函数时,它显示了我制作的带有此插件.dll的应用程序

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

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

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


为了让我的插件编译成64位并在那里正常工作,我应该做些什么,而不是放进
-m64
。。由于未知原因,她无法在QT中将其链接到我(我们远程工作,我无法检查),但她成功地动态链接了它,因此看起来-m64实际上已经足够了

您是否为这两种体系结构创建了单独的导入库?仅仅因为导出函数的列表是相同的,并不能使导入库可互换。或者您根本不使用导入库,并且信任gcc链接器来分析DLL导出吗?Ben Voigt-我没有生成导入库,gcc通常不需要它-llibname,他只是链接。。。。。这是我女助手的问题,我不知道是什么。。。。我只是在困惑,如果-m64应该在所有的工作,它现在显示它的工作时,动态链接。。所以我的疑问得到了回答