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
[62692] Re:Re:C++Builder로 짜여진 serial 통신 프로그램 컴파일 에러 문제
micomz [micomz] 1761 읽음    2010-10-15 10:36
간단하게 수정하고 컴파일만 다시하면 되는 상황이라서
TComm Component 만 연결되면 되겠는데..
인터넷을 검색해도 C++빌더용 TComm Component 를 찾을 수가 없군요..
어디서 구할 수가 없을까요?

박영목.월천 님이 쓰신 글 :
: TComm Component  이것 같네요....  좀 오랜된 Component  같습니다. 하긴 RS323도 오래 되었으니...
: 관계는 없게지만.....
:
: 에러메세지: [C++ Error] Main.cpp(3329): E2451 Undefined symbol 'Comm1'
:
: Comm1이 정의 되지 않았다고 하니 헤드파일에 Comm1이 없다는 것이지요.
:
: 소스가 완벽하지 않은가 봅니다.  head 파일이 없으면 없다고 나올 것인데...
:
: 컴포넌트 설치 된 것인지 아닌지는 보시면 알 것인데....  답답하군요,,,,
:
: 설치되어 있으면,,,  그냥 현재 소스 무시하고
:
: 새로 간단하게 주고 받는 것 하나 만들어서  컴파일 잘 되는지 실행은 되는지 부터 테스트 해보시고 하시죠...
:
: 그렇게 하는 것이 작업이 훨씬 빨리 끝날 것 같은 데.,,.,,,
:
: 차근 차근 찾아보십시오,,,, 큰 도움이 못되겠군요.... 감사합니다.
:
:
:
:
:
:
:
: micomz 님이 쓰신 글 :
: : C++Builder로 짜여진 어떤 serial 통신 프로그램을 수정해보려고 하는 중에
: : 이 부분에서 컴파일 에러가 나는데..
: : 왜그런지 모르겠군요.
: : Component 가 설치가 안돼서 그런가요?
: : 그렇다면 해당 Component는 어떤 것일까요?
: : 아니면, 다른 문제 때문일까요?
: :
: : 에러메세지: [C++ Error] Main.cpp(3329): E2451 Undefined symbol 'Comm1'
: : --------------------------------------
: :  Comm1->Close();   // <-이 부분
: : --------------------------------------
: : 아래 코드를 참조 바랍니다.
: :
: : //---------------------------------------------------------------------------
: : 1. 'main.cpp' 의 초기 선언 부분 코드 일부분
: : //---------------------------------------------------------------------------
: : #include <vcl.h>
: : #include <stdio.h>
: : #include <string.h>
: : #include <stdlib.h>
: : #include <math.h>
: : #include <Printers.hpp>
: : #include <mmsystem.hpp>
: : #include <time.h>
: : #include <dir.h>
: : #include <jpeg.hpp>
: :
: : #pragma hdrstop
: :
: : #include "Main.h"
: : #define byte unsigned char
: : #define word unsigned int
: : #define    dword unsigned int
: :
: : #pragma package(smart_init)
: : #pragma link "Comm"
: : #pragma link "CSPIN"
: : #pragma resource "*.dfm"
: : ...
: : //---------------------------------------------------------------------------
: : 2. 'main.h'  코드  일부분
: : //---------------------------------------------------------------------------
: : #ifndef MainH
: : #define MainH
: :
: : #include <Classes.hpp>
: : #include <Controls.hpp>
: : #include <StdCtrls.hpp>
: : #include <Forms.hpp>
: : #include "Comm.h"
: : #include "CSPIN.h"
: : #include <ComCtrls.hpp>
: : #include <Menus.hpp>
: : #include <ExtCtrls.hpp>
: : #include <Chart.hpp>
: : #include <TeEngine.hpp>
: : #include <TeeProcs.hpp>
: : #include <Series.hpp>
: : #include <Dialogs.hpp>
: : #include <Buttons.hpp>
: : ...
: : //---------------------------------------------------------------------------
: : 3. 'comm.h' 파일 코드 전부분
: : //---------------------------------------------------------------------------
: : #ifndef CommH
: : #define CommH
: :
: : #include <SysUtils.hpp>
: : #include <Controls.hpp>
: : #include <Classes.hpp>
: : #include <Forms.hpp>
: :
: : #include <syncobjs.hpp>
: :
: : #define sMsgExtention    "(Error: %d)"
: : #define sOpenError       "Error accessing specified device (Error: %d)"
: : #define sInvalidHandle   "Invalid device handle, access denied (Error: %d)"
: : #define sPortAlreadyOpen "Port already assigned (open) (Error: %d)"
: : #define sPortNotOpen     "Port not open (Error: %d)"
: : #define sSetupCommErr    "Error initializing Read/Write Buffers (Error: %d)"
: : #define sUpdateDCBErr    "Error updating DataControlBlock (Error: %d)"
: : #define sCommTimeoutsErr "Error updating CommTimeouts (Error: %d)"
: : #define sEscFuncError    "EscapeCommFunction failure (Error: %d)"
: : #define sReadError       "Read error (Error: %d)"
: : #define sWriteError      "Write error (Error: %d)"
: : #define PurgeRead        PURGE_RXABORT + PURGE_RXCLEAR
: : #define PurgeWrite       PURGE_TXABORT + PURGE_TXCLEAR
: : #define PurgeReadWrite   PurgeRead + PurgeWrite
: :
: : typedef void __fastcall (__closure *TCommEvent)(TObject* Sender,
: :                                                    DWORD Status);
: : typedef void __fastcall (__closure *TCommErrorEvent)(TObject* Sender,
: :                                                    int Errors);
: : typedef void __fastcall (__closure *TCommRxCharEvent)(TObject* Sender,
: :                                                    DWORD Count);
: :
: : typedef void __fastcall (__closure *TCommStatEvent)(TObject* Sender,
: :                                                     DWORD Status,
: :                                                     COMSTAT ComStat);
: :
: : enum TCommEventType {evBreak, evCts, evDsr, evError, evRing,
: :                         evRlsd, evRxChar, evRxFlag, evTxEmpty };
: : typedef Set<TCommEventType,evBreak , evTxEmpty>  TCommEventTypes;
: :
: : enum  TBaudRate {br110, br300, br600, br1200, br2400, br4800, br9600, br14400,
: :     br19200, br38400, br56000, br57600, br115200, br128000, br256000};
: : enum  TParity {paNone, paOdd, paEven, paMark, paSpace};
: : enum  TStopBits { sb10, sb15, sb20};
: : enum  TDataBits {da4, da5, da6, da7, da8};
: : enum  TFlowControl {fcNone, fcCTS, fcDTR, fcSoftware, fcDefault};
: :
: : enum  TCommOption {coParityCheck, coDsrSensitivity, coIgnoreXOff,
: :     coErrorChar, coNullStrip};
: : typedef Set<TCommOption,coParityCheck , coNullStrip>  TCommOptions;
: :
: : class TCommEventThread : public TThread
: : {
: :     private :
: :         HANDLE FCommHandle ;
: :         DWORD FEventMask ;
: :         DWORD FSuspendTime ;
: :         TCommEvent FOnSignal;
: :     protected :
: :         virtual void __fastcall Execute(void);
: :         void __fastcall DoOnSignal(void);
: :
: :     public :
: :         __fastcall TCommEventThread::TCommEventThread(HANDLE Handle,
: :                                                     TCommEventTypes MonitorEvents,
: :                                                     DWORD SuspendTime);
: :         __property TCommEvent OnSignal= { read=FOnSignal, write=FOnSignal } ;
: : } ;
: :
: : class TThreadComm;
: :
: : class TCommEventChars : public TPersistent
: : {
: :   private :
: :     TThreadComm *FOwner ;
: :     char FXOnChar;
: :     char FXOffChar;
: :     char FErrorChar;
: :     char FEofChar;
: :     char FEvtChar;
: :     void __fastcall SetEventChar(int Index, char Value);
: :   public :
: :         __fastcall TCommEventChars::TCommEventChars(TThreadComm *Owner);
: :     virtual void __fastcall Assign(TPersistent *Source);
: :   __published :
: :     __property char XOnChar={index=1,read=FXOnChar,write=SetEventChar,default=17};
: :     __property char XOffChar={index=2,read=FXOffChar,write=SetEventChar,default=19};
: :     __property char ErrorChar={index=3,read=FErrorChar,write=SetEventChar,default=0};
: :     __property char EofChar={index=4,read=FEofChar,write=SetEventChar,default=0};
: :     __property char EvtChar={index=5,read=FEvtChar,write=SetEventChar,default=0};
: : } ;
: : //---------------------------------------------------------------------------
: : class PACKAGE TThreadComm : public TComponent
: : {
: :   private:
: :     HANDLE FHandle;
: :     DCB    FDCB;
: :     String FDeviceName;
: :     TSimpleEvent *FEvent;
: :     TCriticalSection *FCriticalSection;
: :     int FReadTimeout;
: :     int FWriteTimeout;
: :     WORD FReadBufSize;
: :     WORD FWriteBufSize;
: :     DWORD FSuspendTime ;
: :     TCommEventTypes FMonitorEvents;
: :     TBaudRate FBaudRate;
: :     TParity FParity;
: :     TStopBits FStopBits;
: :     TDataBits FDataBits;
: :     bool        FConnected ;
: :     OVERLAPPED  WRITE_OS ;
: :     OVERLAPPED  READ_OS ;
: :     TCommEventThread *FEventThread;
: :     TCommEventChars *FEventChars;
: :     TCommOptions FOptions;
: :     TFlowControl FFlowControl;
: :     TNotifyEvent FOnBreak;
: :     TNotifyEvent FOnCts;
: :     TNotifyEvent FOnDsr;
: :     TCommErrorEvent FOnError;
: :     TNotifyEvent FOnRing;
: :     TNotifyEvent FOnRlsd;
: :     TCommRxCharEvent FOnRxChar;
: :     TNotifyEvent FOnRxFlag;
: :     TNotifyEvent FOnTxEmpty;
: :     TCommStatEvent FCommStatEvent ;
: :     void __fastcall SetDeviceName(String Value);
: :     void __fastcall SetMonitorEvents(TCommEventTypes Value);
: :     void __fastcall SetReadBufSize(WORD Value);
: :     void __fastcall SetWriteBufSize(WORD Value);
: :     void __fastcall SetSuspendTime(DWORD Value);
: :     void __fastcall SetBaudRate(TBaudRate Value);
: :     void __fastcall SetParity(TParity Value);
: :     void __fastcall SetStopBits(TStopBits Value);
: :     void __fastcall SetDataBits(TDataBits Value);
: :     void __fastcall SetOptions(TCommOptions Value);
: :     void __fastcall SetFlowControl(TFlowControl Value);
: :     bool __fastcall GetModemState(int Index);
: :     bool __fastcall GetComState(int Index);
: :     void __fastcall Lock();
: :     void __fastcall Unlock();
: :     void __fastcall CheckOpen();
: :     void __fastcall EscapeComm(int Flag);
: :     void __fastcall UpdateCommTimeouts();
: : protected:
: :     virtual void __fastcall CreateHandle();
: :     void __fastcall DestroyHandle();
: :     void __fastcall HandleCommEvent(TObject *Sender,DWORD Status);
: :     void __fastcall UpdateDataControlBlockLock();
: :     __property String DeviceName={ read=FDeviceName,write=SetDeviceName};
: :     __property int ReadTimeout  ={ read=FReadTimeout,write=FReadTimeout,default=1000};
: :     __property int WriteTimeout ={ read=FWriteTimeout,write=FWriteTimeout,default=1000};
: :     __property WORD ReadBufSize  ={ read=FReadBufSize,write=SetReadBufSize,default=4096};
: :     __property WORD WriteBufSize ={ read=FWriteBufSize,write=SetWriteBufSize,default=2048};
: :     __property DWORD SuspendTime ={ read=FSuspendTime,write=SetSuspendTime,default=5};
: :     __property TCommEventTypes MonitorEvents ={read=FMonitorEvents,write=SetMonitorEvents};
: :     __property TBaudRate BaudRate ={read=FBaudRate,write=SetBaudRate,default=br9600};
: :     __property TParity Parity ={ read=FParity,write=SetParity,default=paNone};
: :     __property TStopBits StopBits ={ read=FStopBits,write=SetStopBits,default=sb10};
: :     __property TDataBits DataBits ={ read=FDataBits,write=SetDataBits,default=da8};
: :     __property TCommEventChars* EventChars ={ read=FEventChars };
: :     __property TCommOptions Options ={ read=FOptions,write=SetOptions};
: :     __property TFlowControl FlowControl ={ read=FFlowControl,write=SetFlowControl,default=fcDefault};
: :     __property TNotifyEvent OnBreak ={ read=FOnBreak,write=FOnBreak};
: :     __property TNotifyEvent OnCts ={ read=FOnCts, write=FOnCts} ;
: :     __property TNotifyEvent OnDsr ={ read=FOnDsr, write=FOnDsr};
: :     __property TNotifyEvent OnRing ={ read=FOnRing,write=FOnRing};
: :     __property TNotifyEvent OnRlsd ={ read=FOnRlsd,write=FOnRlsd};
: :     __property TCommErrorEvent OnError={ read=FOnError, write=FOnError};
: :     __property TCommRxCharEvent OnRxChar={ read=FOnRxChar, write=FOnRxChar};
: :     __property TNotifyEvent OnRxFlag={ read=FOnRxFlag, write=FOnRxFlag};
: :     __property TNotifyEvent OnTxEmpty={read=FOnTxEmpty, write=FOnTxEmpty};
: :     __property TCommStatEvent OnComStatEvent={read=FCommStatEvent,write=FCommStatEvent};
: : public:
: :     __fastcall TThreadComm(TComponent* Owner);
: :     virtual __fastcall ~TThreadComm();
: :     void __fastcall Open();
: :     void __fastcall Close();
: :     bool __fastcall Enabled();
: :     int __fastcall Write(char Buf[], DWORD Count) ;
: :     int __fastcall Read(char Buf[] , DWORD Count);
: :     int __fastcall InQueCount();
: :     int __fastcall OutQueCount();
: :     void __fastcall PurgeIn();
: :     void __fastcall PurgeOut();
: : //    {Comm escape functions}
: :     void __fastcall SetDTRState(bool State);
: :     void __fastcall SetRTSState(bool State);
: :     void __fastcall SetBREAKState(bool State);
: :     void __fastcall SetXONState(bool State);
: :     void __fastcall UpdateDataControlBlock();
: :     __property bool Connected={ read=FConnected} ;
: : //    {Comm status flags}
: :     __property bool CTS={ index=1, read=GetModemState } ;
: :     __property bool DSR ={ index=2, read=GetModemState} ;
: :     __property bool RING={ index=3, read=GetModemState } ;
: :     __property bool RLSD ={ index=4, read=GetModemState} ;
: :
: :     __property bool CtsHold ={ index=1, read=GetComState };
: :     __property bool DsrHold ={ index=2, read=GetComState };
: :     __property bool RlsdHold ={ index=3, read=GetComState };
: :     __property bool XOffHold ={ index=4, read=GetComState };
: :     __property bool XOffSent ={ index=5, read=GetComState };
: :
: :     __property HANDLE Handle ={ read=FHandle };
: : __published:
: : };
: :
: : class PACKAGE TComm : public TThreadComm
: : {
: :   public:
: :     __fastcall virtual TComm(TComponent* Owner);
: :     virtual __fastcall ~TComm();
: :   __published:
: :     __property DeviceName;
: :     __property ReadTimeout;
: :     __property WriteTimeout;
: :     __property ReadBufSize;
: :     __property WriteBufSize;
: :     __property SuspendTime ;
: :     __property MonitorEvents;
: :     __property BaudRate;
: :     __property Parity;
: :     __property StopBits;
: :     __property DataBits;
: :     __property EventChars;
: :     __property Options;
: :     __property FlowControl;
: :     __property OnBreak;
: :     __property OnCts;
: :     __property OnDsr;
: :     __property OnRing;
: :     __property OnRlsd;
: :     __property OnError;
: :     __property OnRxChar;
: :     __property OnRxFlag;
: :     __property OnTxEmpty;
: :     __property OnComStatEvent;
: : };
: :
: : //---------------------------------------------------------------------------
: : #endif

+ -

관련 글 리스트
62659 C++Builder로 짜여진 serial 통신 프로그램 컴파일 에러 문제 micomz 1697 2010/10/13
62664     Re:C++Builder로 짜여진 serial 통신 프로그램 컴파일 에러 문제 박영목.월천 1599 2010/10/13
62692         Re:Re:C++Builder로 짜여진 serial 통신 프로그램 컴파일 에러 문제 micomz 1761 2010/10/15
62693             Re:Re:Re:C++Builder로 짜여진 serial 통신 프로그램 컴파일 에러 문제 박영목.월천 1390 2010/10/15
62696                 Re:Re:Re:Re:C++Builder로 짜여진 serial 통신 프로그램 컴파일 에러 문제 micomz 1743 2010/10/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.