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
[52475] 답변고맙습니다.
구윤태 [] 939 읽음    2008-02-29 13:28
구윤태 님이 쓰신 글 :
: 1.
: 프로젝트에  TCD_DataStruct.h  파일생성후
:
: [TCD_DataStruct.h]
:
: #ifndef __TCD_DataStructH__
: #define __TCD_DataStructH__
:
:  typedef struct
: {
:    AnsiString  PatientsID;
:    AnsiString  ChartNo;
:    AnsiString  Name;
:    TDateTime   Birth;
:    AnsiString  Sex;
:    AnsiString  Telephone;
:    AnsiString  Address;
:    AnsiString  Remark;
:    TDateTime   RegistDate;
: } PATIENT;
:
: #endif
: ============================================================================
: 2.  프로젝트 공유 클래스 생성 TCD_ShareData.h
: [TCD_ShareData.h]
: #ifndef TCD_ShareDataH
: #define TCD_ShareDataH
: #include "TCD_DataStruct.h"
:
: class TCD_ShareData
: {
:  private:
:         PATIENT pPatient;
:  public:
:         TCD_ShareData();
:         ~TCD_ShareData();
:         void __fastcall SetPatient(PATIENT mPatient);
:         PATIENT __fastcall GetPatient();
: };
: extern PACKAGE TCD_ShareData *tcdSD;
: #endif
:
:
: [TCD_ShareData.cpp]
: #pragma hdrstop
: #include <vcl.h>
: #include "TCD_ShareData.h"
: #include "Trace.h"
:
: TCD_ShareData *tcdSD;
: TCD_ShareData::TCD_ShareData()
: {
: }
: TCD_ShareData::~TCD_ShareData()
: {
: }
: void __fastcall TCD_ShareData::SetPatient(PATIENT mPatient)
: {
:   pPatient = mPatient;
: }
: PATIENT __fastcall TCD_ShareData::GetPatient()
: {
:   return pPatient;
: }
: #pragma package(smart_init)
: ===========================================================================================
:
: 3. Form 생성
:
:
: #ifndef TCD_PatientInputH
: #define TCD_PatientInputH
:
: #include <Classes.hpp>
: #include <Controls.hpp>
: #include <StdCtrls.hpp>
: #include <Forms.hpp>
: #include <ExtCtrls.hpp>
: #include <jpeg.hpp>
: #include <Mask.hpp>
: #include <ComCtrls.hpp>
:
:
: class Tpatientinput : public TForm
: {
: __published:    // IDE-managed Components
:     TImage *Image1;
:     TImage *okImage;
:     TImage *cancelImage;
:         TMaskEdit *patientidEdit;
:
:     void __fastcall okImageClick(TObject *Sender);
:     void __fastcall cancelImageClick(TObject *Sender);
: public:        // User declarations
:     __fastcall Tpatientinput(TComponent* Owner);
:     //환자 데이터 구조체 저장
:     void __fastcall patientDataStore();
: };
: extern PACKAGE Tpatientinput *patientinput;
: //---------------------------------------------------------------------------
: #endif
:
:
:
: [TCD_PatientInput.cpp]
: //공유데이터
: #include <vcl.h>
: #pragma hdrstop
:
: #include "TCD_ShareData.h"
: #include "Trace.h"
:
: #pragma package(smart_init)
: #pragma resource "*.dfm"
:
: Tpatientinput *patientinput;
:
: //ok 버튼
: void __fastcall Tpatientinput::okImageClick(TObject *Sender)
: {
: //환자 정보 struct 저장
:   patientDataStore();
: }
:
: void __fastcall Tpatientinput::patientDataStore()
: {
:
:   //구조체에 환자 정보 저장하기
:   PATIENT mPatient;
:   mPatient.PatientsID= this->patientidEdit->Text;
:   TRACE("mPatient=%p  , mPatient.PatientsID=%s",mPatient,mPatient.PatientsID); //정상적으로 값이 표시 됩니다.
:   tcdSD->SetPatient(mPatient);
: }
:
:
:
:
: ---------------------------------------------------------------------------------------------
: 문의)
: 구조체 헤더정의후 , 공유 클래스를 생성해서 구조체 개체를 만들고
: 구초체를 받아서 처리하는 루틴 만든 다음
: 새로운 폼에서 공유클래스를 이용하여  PATIENT mPatient 생성한 곳에 , 객체를 전달 하여 주는 과정입니다.
:
:
: TCD_PatientInput.cpp 소스에서 ok버튼을 실행시키면
: 구조체의 값이 저장되어 SetPatient(mPatient)를 통해서
: TCD_ShareData.cpp 소스의 SetPatient함수를 실행시키는데
:
: void __fastcall TCD_ShareData::SetPatient(PATIENT mPatient)
: {
:   TRACE("mPatient=%p  , mPatient.PatientsID=%s",mPatient,mPatient.PatientsID); //정상적으로 값이 표시됩니다.
:   pPatient = mPatient; <-여기서 에러가 나타나는데 원인을 모르겠습니다.
: }
:
:
:
:
: 에러 내용
: Access violation at address 00432E0 in module 'TCD.exe' , Write of address 00000000
:
: 메세지가 나옵니다.

+ -

관련 글 리스트
52467 에러 원인좀 찾아 주세요.. 구윤태 1094 2008/02/28
52475     답변고맙습니다. 구윤태 939 2008/02/29
52474     Re:에러 원인좀 찾아 주세요.. 1148 2008/02/29
52473     Re:에러 원인좀 찾아 주세요.. 정성훈.해미 1088 2008/02/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.