투덜이스머프 님이 쓰신 글 :
: 현재 c++ Builder6의로 개발된 소스를 10.1 Berlin으로 변경하고 있습니다
:
: 그런데 "Share.h" 에
:
: extern TADOConnection *FOS_CONN;
:
: 이렇게 선언하고 mainform에서 사용하면 그전에는 이상없었는데 10.1에서는
:
:
: [ilink32 Error] Error: Unresolved external '_FOS_CONN' referenced from K:\FOS2019_C++\WIN32\RELEASE\SPLASHDIALOG.OBJ
:
:
: 위와 같은 오류가 발생합니다
답변:
FOS_CONN 심볼에 대한 타입이...
TADOConnection* 이라고 'Share.h' 헤더에 extern 으로 선언만 되어있고, 정의는 되어 있지 않잖아요.
Unit1.cpp 에 아래와 같은 식으로 정의.
<Unit.cpp>
....
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Share.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource
TForm1 *Form1;
TADOConnection* FOS_CONN;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
FOS_CONN = new TADOConnection(this);
}
//---------------------------------------------------------------------------
선언과 정의의 구분이 안되고 있는 듯.
|