|
kids 님이 쓰신 글 :
: 안녕하세요....
:
: 5월 13일날 질문에 답중에..의문사항이 있어서 이렇게 글을 씁니다.
: 제가 질문한건 아니구요....다른분이 물어보신건데..저두 똑같은 문제에 부닥쳐서...
: RS232프로그램에서 컴파일 하는 과정중에 에러가 발생합니다.
:
: 이에 대한 해결책으로
:
: hpp파일에 보면 생성자중 (int)파라미터를 갖는것과 (int,int) 파라미터를 갖는 생성자가
: 두개씩있어서 그대로 컴파일을 하면 multiple declrare....어쩌구 하는 에러가 납니다.
: 둘 다 각각 앞에 것은 선언만 되어 있고, 뒤에 선언된 것은 inline으로 빈 바디가 선언되어 있으므로
: ({ }), 두번째것을 눈 딱감고 삭제해버리면 됩니다.
:
: 라고 답해주셨더군요...
:
: 저두 이 문제인데요...
: 두번째것이 도대체 무엇인지..모르겠어요...
: 좀 삭제할 것을 자세히 말해주셨으면 감사하겠습니다...
: 괜히 잘 못 지울까봐서...이렇게 물어봅니다...
:
: (int,int) 이부분인지? 이것만 지워서는 안되는것 같은데...
:
:
: 명쾌한 답을 부탁드립니다....
:
: 그럼 안녕히 계세요.....
안녕하세요 ^^; 괴물입니다.
임프님이 바쁘신것 같으니(^^;) 괴물이 먼저 답변부터 드리겠습니다.
CPort.hpp에 보시면 642라인에 EComport 클래스가 선언되어 있습니다.
헌데 임프님 말씀데로 661라인과 679라인에 인라인 생성자가 버젓이 재선언(?)되어있습니다.
왜그런지는 괴물머리로서는 아직 모르지만 (--;) 껍데기를 둔 이유가 분명 있을거 같은데 음..
임프님이 자세히 설명해주실지도 모르겠습니다 ^^;;
암튼 재선언된 두부분을 주석처리해주시고, 덤으로
Project Options - Directories/Conditionals - Library path 에
$(BCB)\Projects\Lib 를 추가해주시면 에러없이 빌드하실 수 있습니다.
다음 프로젝트들에도 영향받을수 있게 Default 에 체크 꼭 해주시구요..
고친 부분을 덧붙여드릴테이 참고하시구요
항상.. 즐플밍하시길 빕니다. 울렐레~
class DELPHICLASS EComPort;
class PASCALIMPLEMENTATION EComPort : public Sysutils::Exception
{
typedef Sysutils::Exception inherited;
private:
int FWinCode;
int FCode;
public:
__fastcall EComPort(int ACode, int AWinCode);
__fastcall EComPort(int ACode);
__property int WinCode = {read=FWinCode, write=FWinCode, nodefault};
__property int Code = {read=FCode, write=FCode, nodefault};
public:
#pragma option push -w-inl
/* Exception.CreateFmt */ inline __fastcall EComPort(const AnsiString Msg, const System::TVarRec *
Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
#pragma option pop
#pragma option push -w-inl
// /* Exception.CreateRes */ inline __fastcall EComPort(int Ident)/* overload */ : Sysutils::Exception(
// Ident) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateResFmt */ inline __fastcall EComPort(int Ident, const System::TVarRec * Args, const
int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateHelp */ inline __fastcall EComPort(const AnsiString Msg, int AHelpContext) : Sysutils::Exception(
Msg, AHelpContext) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateFmtHelp */ inline __fastcall EComPort(const AnsiString Msg, const System::TVarRec
* Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext
) { }
#pragma option pop
#pragma option push -w-inl
// /* Exception.CreateResHelp */ inline __fastcall EComPort(int Ident, int AHelpContext)/* overload */
// : Sysutils::Exception(Ident, AHelpContext) { }
#pragma option pop
#pragma option push -w-inl
/* Exception.CreateResFmtHelp */ inline __fastcall EComPort(System::PResStringRec ResStringRec, const
System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(
ResStringRec, Args, Args_Size, AHelpContext) { }
#pragma option pop
public:
#pragma option push -w-inl
/* TObject.Destroy */ inline __fastcall virtual ~EComPort(void) { }
#pragma option pop
};
|