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, 就出现这个错误, 调试状态下就没问题。。。奇怪了
...全文
1711 14 打赏 收藏 转发到动态 举报
写回复
用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就可以了
VC 6.0常见安装错误 VC调试常见错误 程序设计到多线程,VC++6.0默认设置可作以下修改: project->settings->C/C++->Category中选Code Generation->Use Run-time Library选Debug MultiThreaded或MultiThreaded 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 下面介绍解决的方法: 1. Windows子系统设置错误, 提示: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: [Project] --> [Settings] --> 选择"Link"属性页, 在Project Options中将/subsystem:console改成/subsystem:windows 2. Console子系统设置错误, 提示: LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 控制台项目要使用Console子系统, 而不是Windows, 设置: [Project] --> [Settings] --> 选择"Link"属性页, 在Project Options中将/subsystem:windows改成/subsystem:console 3. 程序入口设置错误, 提示: msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口: [Project] --> [Settings] --> 选择"C/C++"属性页, 在Category中选择Output, 再在Entry-point symbol中填入wWinMainCRTStartup, 即可 4. 线程运行时库设置错误, 提示:

13,824

社区成员

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

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