[ILINK32 Error] Error: Unresolved external '_fForm' referenced from D:\我的文档\RAD
过程是这样的:一:new 一个 VCL Forms Application , 名词由Form1改为fForm了,保存为了fMyForm.cpp ;
二:new一个package,添加第一步的.cpp,编译后保存并install package了;
三:new一个 VCL Forms Application , 加入 #include "fMyForm.cpp" ,
弄个button,点击事件写:TfForm* p = new TfForm(this);
p->Show();
编译就错误了呗。。 就一个错误
[ILINK32 Error] Error: Unresolved external 'TfForm::' referenced from D:\我的文档\RAD STUDIO\PROJECTS\DEBUG\UNIT1.OBJ
[ILINK32 Error] Error: Unresolved external '__fastcall TfForm::TfForm(Classes::TComponent *)' referenced from D:\我的文档\RAD STUDIO\PROJECTS\DEBUG\UNIT1.OBJ
[ILINK32 Error] Error: Unable to perform link
[解决办法]
很明显是第一步出的错,你是怎么操作“名词由Form1改为fForm了”的?强烈建议你选中Form然后修改Name属性,不要直接修改IDE单元中的类名。
[解决办法]
1)引用文件,new tform相当于用了这个文件的类,与包没关系
2)要用包得概念,得做成控件调用或者动态装载包文件,这个早期的一个小例子
THandle h;
TMetaClass *mc;
TForm *frm;
h=LoadPackage("MZ.bpl");
Caption = GetPackageDescription("MZ.bpl");
mc=FindClass("TFrmHjsf");
if( mc == NULL )
return;
Application->CreateForm(mc,&frm);
frm->ShowModal();