C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[38617] Re:Re:[질문]고맙습니다..
쥬신 [chusin] 938 읽음    2005-01-04 08:58
Starlet 님이 쓰신 글 :
: 안녕하세요.
: 각각의 소스가 컴파일되어 obj파일이 생성될때, 함수의 소스코드가 없으면 일단 함수명만 가지고 있고 Link될때 다른 obj 파일에서 찾아 실제 코드로 대체됩니다. "Unresolved external...."은 함수가 쓰이긴 했는데 원래 소스코드를 프로젝트내의 어떤 파일에서도 찾을수 없을때 나오는 에러입니다.
: 즉, 아래 소스에서 SetFileName이 쓰였으나 이 함수가 어디에도 없다는 이야기지요. SetFileName 함수를 작성해 놓으신곳을 자세히 보시면 void __fastcall TForm1::SerFileName(const AnsiString FileName)) 으로 Set이 아닌 Ser로 오타가 나 있습니다. 그래서 SetFileName이 링크때 에러가 나는 것입니다.
:
:
: 쥬신 님이 쓰신 글 :
: : 에러 네용입니다...
: : [Linker Error] Unresolved external '__fastcall TForm1::SetFileName(const System::AnsiString)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\EDITUNIT.OBJ
: : 보시는데로 obj오류로 디비깅을 열심히 하고 있는 중입니다....아직 다 완성한것은 아니구요 출력하면 나올수 있게 해났습니다.....보는데 짜증네지 마시고 봐주세요.....add to prject..는 말안해도 어디서 해야 하는지 아실겁니다..
: : #include <vcl.h>
: : #pragma hdrstop
: :
: : #include "EditUnit.h"
: : #include "RichRes.h"
: : #include <stdlib.h>
: : #include <stdio.h>
: : //---------------------------------------------------------------------------
: : #pragma package(smart_init)
: : #pragma resource "*.dfm"
: : TForm1 *Form1;
: : //---------------------------------------------------------------------------
: : __fastcall TForm1::TForm1(TComponent* Owner)
: :     : TForm(Owner)
: : {
: : }
: : //---------------------------------------------------------------------------
: : void __fastcall TForm1::N1Click(TObject *Sender)
: : {
: :     SetFileName((AnsiString)LoadStr(Untitled_101));
: :     RichEdit1->Lines->Clear();
: :     RichEdit1->Modified = False;
: : }
: : //---------------------------------------------------------------------------
: : void __fastcall TForm1::SerFileName(const AnsiString FileName)
: : {
: :     LPSTR lpBuf = new char[ MAX_PATH];
: :     sprintf(lpBuf, LoadStr(Percent_s_102).c_str(),
: :         ExtractFileName(FileName).c_str(),
: :         Application->Title.c_str());
: :     Caption = (AnsiString)lpBuf;
: :     FFileName = FileName;
: :     delete lpBuf;
: : }
: : /*__fastcall TForm1::TForm1(TComponent* Owner):TForm(Owner)//-이부분 좀 설명좀요 :TForm을 어떻게 쓰이
: : //는거죠
: : {
: :     SetFileName((AnsiString)LoadStr(Untitled_101));
: : } */
: : void __fastcall TForm1::S1Click(TObject *Sender)
: : {
: :     if(!strcmp(FFileName.c_str(), LoadStr(Untitled_101).c_str()) )
: :     {
: :         A1Click(Sender);
: :     }
: :     else
: :     {
: :         AnsiString BackupFileName = ChangeFileExt(FFileName, ".BAK");
: :         DeleteFile(BackupFileName);
: :         RenameFile(FFileName, BackupFileName);
: :         RichEdit1->Lines->SaveToFile(FFileName);
: :         RichEdit1->Modified = False;
: :     }
: : }
: :
: : //---------------------------------------------------------------------------
: : void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
: : {
: :      if(RichEdit1->Modified)
: :     {
: :         switch(Application->MessageBox("텍스트를 저장하시겠습니까?", "에디터",
: :         MB_YESNOCANCEL|MB_ICONWARNING))
: :         {
: :             case IDYES:
: :             {
: :                 S1Click(this);
: :                 CanClose = true;
: :             }
: :             break;
: :             case IDNO:
: :             {
: :             }
: :             break;
: :             case IDCANCEL:
: :             {
: :                 CanClose = false;
: :             }
: :             break;
: :             default:
: :             {
: :                 throw Exception("에러 발생");
: :             }
: :         }
: :     }
: : }
: : void __fastcall TForm1::CheckFileSave(void)
: : {
: :     if(RichEdit1->Modified)
: :     {
: :         switch(MessageBox(Handle, LoadStr(SaveChanges_103).c_str(),
: :         LoadStr(Confirmation_104).c_str(), MB_YESNOCANCEL|
: :         MB_ICONQUESTION))
: :         {
: :             case ID_YES : S1Click(this);
: :
: :             case ID_CANCEL : Abort();
: :         };
: :     }
: : }
: : //---------------------------------------------------------------------------
: :
: : void __fastcall TForm1::A1Click(TObject *Sender)
: : {
: :     if(SaveDialog1->Execute() )
: :     {
: :         RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
: :         SetFileName(SaveDialog1->FileName);
: :         RichEdit1->Modified = False;
: :     }
: : }
: : //---------------------------------------------------------------------------
: :
: : void __fastcall TForm1::X1Click(TObject *Sender)
: : {
: :     Close();
: : }
: :
: :
: :
: : #include <vcl.h>
: : #pragma hdrstop
: : //---------------------------------------------------------------------------
: : USERES("Editproj.res");
: : USEFORM("EditUnit.cpp", Form1);
: : USERC("RichRes.rc");
: : //---------------------------------------------------------------------------
: : WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
: : {
: :     try
: :     {
: :          Application->Initialize();
: :          Application->CreateForm(__classid(TForm1), &Form1);
: :          Application->Run();
: :     }
: :     catch (Exception &exception)
: :     {
: :          Application->ShowException(&exception);
: :     }
: :     catch (...)
: :     {
: :          try
: :          {
: :              throw Exception("");
: :          }
: :          catch (Exception &exception)
: :          {
: :              Application->ShowException(&exception);
: :          }
: :     }
: :     return 0;
: : }
: : //---------------------------------------------------------------------------
: : //RichRes.cpp파일입니다.
: :
: : #include "RichRes.h"
: :
: : STRINGTABLE
: : {
: :     Untitled_101, "제목없음"
: :     Percent_s_102, "%s - %s"
: :     SaveChanges_103, "변경된 사항을 저항하시겠습니까?"Confirmation_104, "확실합니까?"
: :     Numberbetween_105, "숫자는 반드시 1에서 1638사이의 값이어야만 합니다."
: :     Restart_106, "%s를 보기 위해 애플리게이션을 다시 시작하십시오."Restart_107, "버전."
: : }
: :
: : //-----------------------------------------------------
: : //RichRes.h파일입니다
: :
: : #define Untitled_101 101
: : #define Percent_s_102 102
: : #define SaveChanges_103 103
: : #define Confirmation_104 104
: : #define Numberbetween_105 105
: : #define Restart_106 106
: : #define Restart_107 107

+ -

관련 글 리스트
38606 [질문]에러가 나옵니다..찾을려고 여러번 고치고 수정을 해보았지만 안됩니다.. 쥬신 1006 2005/01/03
38609     Re:[질문]에러가 나옵니다..찾을려고 여러번 고치고 수정을 해보았지만 안됩니다.. Starlet 1235 2005/01/03
38617         Re:Re:[질문]고맙습니다.. 쥬신 938 2005/01/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.