4

有没有办法从 Delphi IDE 编译 C 代码?

我想使用一些 C 代码作为 Delphi 项目的一部分(并且不希望将它放在 DLL 中)。那么,在 Delphi IDE 中,我可以编译 C 代码吗?也许我可以使用关键字来指示代码插入的开头(就像ASM那样)?或者将 C 代码放在一个单独的单元中 - 但我将如何从我的 Delphi 代码中调用它?

如果可以做到,我该怎么做?谢谢 ...


[更新] 虽然听起来可以使用免费的 Bolrand 命令行 C++ 编译器来完成,但我最终决定将 C 代码放入 DLL 并静态链接。我想这两种解决方案都是可以接受的)?)

4

1 回答 1

11

不,不可能将 c 代码编译为 Delphi 项目的一部分。

您可以使用 C++ Builder 编译 c 代码,并*.obj在 Delphi 应用程序中使用对象 ( ) 文件,方法是链接它们,{$L file.obj}然后像​​调用任何其他 Delphi 函数一样调用它们,但您必须自己提供 c 运行时库函数的实现. (单元中有一些可用的crtl.pasSystem.Win.crtl.pas在 XE2/XE3 中);任何不存在的都需要自己编写 Delphi 替换)。

有关如何执行此操作的示例,您可以通过查看Zlib.pasSystem.ZLib.pas在 XE2/3 中)来了解如何使用 ZLib。

正如其他人在对您的问题的评论中提到的那样,您可以在构建项目之前设置一个预构建事件来运行您的 c 编译器,这将起作用;从技术上讲,我不确定这是否算作“作为项目的一部分进行编译”,因为它实际上是在运行外部进程。不过,上述信息在这种情况下仍然适用。

于 2012-12-13T03:43:25.573 回答