Unresolved external错误。。。

Javpp 2006-09-14 10:36:41
[Linker Error] Unresolved external '__fastcall Forms::TApplication::SetHandle(unsigned int)' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\RELEASE\VCLE.LIB|_t_Forms
[Linker Error] Unresolved external '__fastcall Dialogs::ShowMessage(const System::AnsiString)' referenced from F:\CPP\GMVRCS2006\OBJ\GMV2006.OBJ
[Linker Error] Unresolved external 'Forms::Application' referenced from F:\CPP\GMVRCS2006\OBJ\GMV2006.OBJ
[Linker Error] Unresolved external '__fastcall Forms::TApplication::ShowException(Sysutils::Exception *)' referenced from F:\CPP\GMVRCS2006\OBJ\GMV2006.OBJ


代码如下:
//---------------------------------------------------------------------------

#include <vcl.h>
#include <Dialogs.hpp>

#include "winbase.h"

#pragma hdrstop

HANDLE (__stdcall *LoadMainForm) (TApplication *App);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
//Load dll
HINSTANCE HInst = LoadLibrary ("Frame.dll");
if (HInst)
{
LoadMainForm = (HANDLE (__stdcall *) (TApplication *App)) GetProcAddress (HInst, "LoadMainForm");
if (LoadMainForm)
{
Application->Handle = LoadMainForm (Application);
}
else
{
ShowMessage ("File Error!");
return 1;
}
}
else
{
ShowMessage ("Load dll Error!");
return 1;
}

FreeLibrary ("Frame.dll");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------

把OPTION中的COMPLIER中选中REALSE, 就出现这个错误, 调试状态下就没问题。。。奇怪了
...全文
1741 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
netliuming 2006-09-14
  • 打赏
  • 举报
回复
就是相应方法的文件找不到,比如未包含头文件,(特殊情况下,比如包含了那个文件可能引发很多冲突)BlueDeepOcean(蓝色·深海) 的方法大多数情况下是可行的,不过一般做一下extern fun申明就行。
Javpp 2006-09-14
  • 打赏
  • 举报
回复
keiy()
我的这个工程不是控制台工程啊, 是一个WINFORM工程咯
BlueDeepOcean 2006-09-14
  • 打赏
  • 举报
回复
呵呵,有些时候错误的产生是莫名的,解决的方法也就应该特别点。
柯本 2006-09-14
  • 打赏
  • 举报
回复
我试了一下,程序没任何问题,可能是工程文件的问题
我是这样建的
File->New->Other->Console Wizard->点c++及Use VCL->确定
然后将你的程序拷入,编译通过(无论是debug或release都可以)
Javpp 2006-09-14
  • 打赏
  • 举报
回复
BlueDeepOcean(蓝色·深海)
这样做行吗?不会影响到吧。

我昨天卸载程序的时候不知道有没有影响到CB, 我一会重新装一遍CB
BlueDeepOcean 2006-09-14
  • 打赏
  • 举报
回复
我曾经也遇到过类似的情况,我当时解决的方法是把这些函数按照它们在C++Builder中存在的规则,在头文件的相应位置作定义,在.cpp文件中声明函数体。但是函数体中什么也不写,之后保存,再运行即可。
Javpp 2006-09-14
  • 打赏
  • 举报
回复
我回去重新安装一下CB, 然后告诉大家
lurel 2006-09-14
  • 打赏
  • 举报
回复
应该是缺少对应的类库。
LuoGD 2006-09-14
  • 打赏
  • 举报
回复
Application->ShowException(&exception);
也出错,说明的你CBC有问题,重新安装,还省事
LuoGD 2006-09-14
  • 打赏
  • 举报
回复
工程中没有SetHandle的实现!

如果是自定义的方法请添加方法体,
如果是外部的请添加相应的库文件.
Javpp 2006-09-14
  • 打赏
  • 举报
回复
刚才试过了, 在我的机器上还是不行, 我重新安装了CB, 另外一台机器是新安装的, 还是DEBUG的时候可以, REALSE的时候不可以。

我试了一下, 只要把Build with runtime packages的钩去掉就出错。
jaffy 2006-09-14
  • 打赏
  • 举报
回复
keiy() 说的对,
你重新建个新的工程文件,然后把以前的UNIT都加进来看看,或许就没有问题了
LuoGD 2006-09-14
  • 打赏
  • 举报
回复
在DEBUG模式下可以,说明程序肯定没问题,

只是Release模式下BCB的设置有问题,比如缺省LIB路径等
柯本 2006-09-14
  • 打赏
  • 举报
回复
我建的就是winform的工程,BCB的windows application(不含form的)就可通过Console Wizard来建,只要不点Console application就可以了

13,870

社区成员

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

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