【问题标题】:Build C/C++ library to link it into delphi application... How?构建 C/C++ 库以将其链接到 delphi 应用程序......如何?
【发布时间】:2010-12-30 07:06:43
【问题描述】:

如果我有一个用 C/C++ 编写的库的源代码(比如说它的 libxml2),现在我想构建它,并将它链接到 delphi 应用程序中......我知道这是可能的,因为 Delphi Zlib是吗(http://www.dellapasqua.com/delphizlib/)...但我的问题是,如何准备那些 .obj 文件?

提前致谢 米。

【问题讨论】:

    标签: c++ delphi .obj


    【解决方案1】:

    您需要使用 CodeGear 的 C++ 编译器为 Delphi 生成兼容的 obj 文件。您的 Delphi 是否带有 C++ Builder?否则你可以试试free (Borland) commandline version。阅读有关此主题的更多信息here

    【讨论】:

    • 我已经阅读了那篇文章。然而,这并没有涵盖解决 C 标准库依赖关系的主题,我发现不可能重新实现这么多 C 标准函数,如 open、read、recv、memcpy 等......我相信有更好的比一位作者提出的解决方案。
    • 也许最好用这些新信息更新您的问题。或者就这个特定问题提出一个新问题。
    • Allen 文章中的提示:将 crtl.dcu 添加到您的项目以解决核心 C RTL 链接问题。
    【解决方案2】:

    如果您创建一个遵循 C 应用程序二进制接口 (ABI) 的 dll,您可以从 C++ 或 Delphi 应用程序动态链接到它。

    建议您执行以下操作:

    1. 只使用 C 或 C 风格的代码,帮自己一个忙,用
    2. 包围模块

    #ifdef __cplusplus 外部“C” { //头文件 } #endif //__cplusplus

    这保证了代码编译成 C ABI

    1. 建议将函数设为 __stdcall

    2. 将函数编译为dll

    从这里您应该能够链接到 dll,就像 Delphi 可以链接到任何 Windows DLL 一样。 (我不记得 Delphi 方面需要做什么)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-15
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 2014-09-08
      • 2012-07-09
      • 1970-01-01
      相关资源
      最近更新 更多