我正在使用Delphi 7开发JNI DLL文件。生成的文件将是32位DLL,无法在64位Java虚拟机上运行。
Delphi 7可以生成C或C++对象文件。是否可以使用第三方链接器从这些对象文件创建64位DLL?
Delphi 7可以生成C或C++对象文件。是否可以使用第三方链接器从这些对象文件创建64位DLL?
Delphi编译器生成32位目标代码。无论如何,该代码都不能链接到64位模块中。
目前最好的选择是使用FreePascal,它可以生成64位DLL。 Delphi即将推出64位版本,但发行日期不确定。
另一个选择是强制使用32位版本的JVM,如果这对您可行。
64位代码与32位代码有很大的区别,不仅仅是使用了64位指令。微软在参数传递、栈数据和对齐等方面引入了更严格的规则。无法将32位代码包含在64位DLL中(因此也禁止从64位代码调用32位代码,反之亦然,但可以使用特定技术)。你必须等待Delphi 64位编译器(并希望它的第一个版本足够好),或者寻找其他解决方案。无论如何,Delphi 7已经过时了。