BCB如何加入自己的类文件

let_1986 2010-03-17 06:23:31
我在BCB里建立了.h和.cpp文件,编译都没问题,连接时先是出现无法打开dfm文件,后来又有下面的错误,我建的类不是窗口程序,但是用到了TStringGrid类,编译时就出这种错误:[Linker Error] Unresolved external '__fastcall Utils::addStringGrid(Grids::TStringGrid *, System::AnsiString, System::AnsiString, System::AnsiString, System::AnsiString)' referenced from F:\CBUILDER PROJECTS\376.2TEST\CONFIGPER.OBJ


我是个新手上阵,望各位不吝赐教!!!
...全文
122 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccrun.com 2010-03-18
  • 打赏
  • 举报
回复
你的addStringGrid函数声明和实现的参数不一致,导致编译找不到.h中声明的函数实现。
仔细检查你的代码,在.h文件中,addStringGrid的几个参数是AnsiString类型,而.cpp文件中的实现部分,却是char *的参数。
柯本 2010-03-18
  • 打赏
  • 举报
回复
如果没有用到.dfm,把这行去掉:
#pragma resource "*.dfm"

link时找不到函数,用我上面的
let_1986 2010-03-18
  • 打赏
  • 举报
回复
.h里有声明,.cpp里有实现,两个文件里都有#include <vcl.h>
上面的问题是:在工程项目里,要加入自己的类文件,.h是是这么写的:
#include <vcl.h>
#include <Classes.hpp>
#include <ComCtrls.hpp>
#include <Controls.hpp>
#include <ExtCtrls.hpp>
#include <Grids.hpp>
#include <ImgList.hpp>
#include <StdCtrls.hpp>
#include <ToolWin.hpp>
//---------------------------------------------------------------------------

#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <ComCtrls.hpp>
#include <ImgList.hpp>
#include <ToolWin.hpp>
#include <ExtCtrls.hpp>
#include <Grids.hpp>
//---------------------------------------------------------------------------


class Utils
{
public:
static __fastcall void addStringGrid(TStringGrid* stringGrid,AnsiString bitmap,AnsiString type,AnsiString info,AnsiString time);

};
上面的是.h文件,下面是.cpp文件:

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Utils.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"

void __fastcall Utils::addStringGrid(TStringGrid* stringGrid,char* bitmap,char* type,char* info,char* time)
{

stringGrid->Cells[1][1]="11cell";
}


各位前辈帮帮忙!!!
ydlchina 2010-03-18
  • 打赏
  • 举报
回复
这个函数是否只有声明,没有定义?
海嵌 2010-03-17
  • 打赏
  • 举报
回复
#include <vcl.h>
柯本 2010-03-17
  • 打赏
  • 举报
回复
如果是命令行编译的,用
bcc32 test.cpp rtl.lib vcl.lib
或在程序中加入:
#pragma link "rtl.lib"
#pragma link "vcl.lib"
我来看看CB 2010-03-17
  • 打赏
  • 举报
回复
没看明白。。。。。。。。。。
难道是没有连接库函数?

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧