是否有像Borland“coff2omf.exe”这样的工具用于将Borland OMF LIB格式转换为 MS VC ++ COFF LIB格式?
实际上我想在delphi中创建.obj文件并在MSVC ++中使用它。
答案 0 :(得分:7)
是的,有这样的工具。
请参阅this tool。
此实用程序可用于在所有32位和64位x86平台的COFF / PE,OMF,ELF和Mach-O格式之间转换目标文件。可以修改目标文件中的符号名称。可以跨平台构建,修改和转换函数库。可以转储目标文件和可执行文件。还包括一个非常好的反汇编程序,支持SSE4,AVX,AVX2,FMA和XOP指令集。包含源代码(GPL)。手册。
请注意,此http://www.agner.org网站是我了解的有关低级优化的最佳资源。如果你想处理表现,所有链接的信息都值得一读。
但是对于在VC ++中使用Delphi生成的.obj
,它不是很容易实现,而是用于非常小的代码部分。您将需要代码中使用的Delphi RTL。外部.dll
要好得多。另请注意,VC ++中的某些类型(如字符串或动态数组)不易修改。
答案 1 :(得分:4)
据我所知,没有这样的工具。使用Agner Fog的目标文件转换器,Arnaud引用的工具,我从未成功将Delphi单元转换为可以链接到MSVC程序的COFF .obj。
我确实认为采用Delphi源代码,编译它,然后在MSVC中使用生成的对象是不现实的。另一个方向很可能。您可以将C代码编译为对象,并将该对象链接到Delphi可执行文件。执行此操作时,您需要解决编译对象具有的任何依赖项。
但是要将Delphi对象链接到C / C ++程序,将需要使用Delphi RTL的任何部分。除非你碰巧不使用Delphi RTL的任何部分,这似乎很棘手,这似乎不太可能。
在您的情况下,我认为您的选择是: