【问题标题】:placing Indy TIdTCPClient into a non-visual package将 Indy TIdTCPClient 放入非可视包中
【发布时间】:2010-02-16 19:13:41
【问题描述】:

我全部,

我正在尝试让 TIdTCPClient 在我的非可视组件中运行。我将以下内容添加到我的 .h 文件中:

#include "IdBaseComponent.hpp"
#include "IdComponent.hpp"
#include "IdTCPClient.hpp"
#include "IdTCPConnection.hpp"
...
private:
   TIdTCPClient *mTCPClient;

一切都编译得很好,但当然 Indy 还没有包含在构建中。

所以我在我的 .cpp 文件中执行此操作:

#pragma link "IdBaseComponent"
#pragma link "IdComponent"
#pragma link "IdTCPClient"
#pragma link "IdTCPConnection"
...
mTCPClient = new TIdTCPClient( NULL );

在编译期间我得到:

[ILINK32 Error] Fatal: Unable to open file 'IDBASECOMPONENT.OBJ'

如果我只是将组件放到一个表单上,这一切都可以工作,添加与我手动添加到我的组件中相同的行(新组件除外)并且它都可以正常编译。我想不通。

谢谢

【问题讨论】:

    标签: c++builder indy


    【解决方案1】:

    您是否尝试将 Indy 包添加到您的 Requires 部分,只需从 CodeGear 安装路径的 lib 文件夹中添加所需的 .bpi 文件。

    您可以通过“项目”菜单执行此操作:

    项目 > 添加到项目... (Shift+F11) > 需要 > 浏览...

    在 lib\Debug 或 lib\Release 中找到 Indy*.bpi 文件并将所需的文件添加到您的项目中。

    【讨论】:

    • 我最终将 #pragma link "IndyCore.bpi" 添加到 .cpp 中,这很有效。似乎从 $(BDS)\lib 为发布和调试版本获得了相同的库。这当然会得到发布版本,所以你的方式更好。
    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 2014-06-12
    • 2015-05-29
    • 2022-01-23
    • 2015-12-28
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    相关资源
    最近更新 更多