Invoice := TInvoice.Create;
땅주인 님이 쓰신 글 :
: Delphi 2009입니다.
: Form의 FormShow 이벤트에서 TInvoice라는 객체를 생성하고 초기화 하려는데..
: TInvoice 객체 생성하려고만 하면 Access Violation이 나는데요..
: 참고로 XML WebService를 붙이기 위해 THTTPRIO, TXMLDocument 를 쓰고 있습니다.
: 이 두 객체를 TInvoice 객체에 포인터로 넘겨주어 실제 로직은 TInvoice에 모두 몰아 넣으려고 합니다.
:
: Form 객체의 Show Event에서 TInvoice의 Create를 하는데 바로 에러가 나네요..
:
: Access violation at address 00404388 in module InvoiceProject.exe. Read of address 00000000
:
: 메세지로 봐서는 Invoice라는 객체가 생성되지 않은 것으로 보입니다.
: 어떻게 해결해야 할 지?
:
:
: /////////////////////////////////////////////////////////////////////////////////
: // UnitInvoice.pas 파일의 내용
:
: unit UnitInvoice;
: interface
: uses
: .....
: GFService, Invoice, UnitPrintInvoice;
:
: type
: TFormMain = class(TForm)
: ....
: HTTPRIO1: THTTPRIO;
: XMLDocument1: TXMLDocument;
:
: procedure FormShow(Sender: TObject);
: procedure FormClose(Sender: TObject; var Action: TCloseAction);
: ....
: private
: Invoice : TInvoice; // 송장 처리용 Classs
: InvoicePrint : TFormPrint; // 송장출력용 화면(POST로 요청)
: public
: { Public declarations }
: end;
:
: var
: FormMain: TFormMain;
:
: implementation
:
: {$R *.dfm}
:
: procedure TFormMain.FormShow(Sender: TObject);
: begin
: Invoice.Create(); // Access violation 발생.
: //Invoice.Init(HTTPRIO1, XMLDocument1);
:
: // Config.ini 파일을 내용을 보여준다.
: //edMkimid.Text := Invoice.GetMkImid();
: //edCustomerCode.Text := Invoice.GetCustomerCode();
: //edOrderNo.Text := IntToStr(Invoice.GetOrderID());
: end;
:
:
:
: /////////////////////////////////////////////////////////////////////////////////
: // Invoice.pas 파일의 내용
:
: unit Invoice;
:
: interface
:
: uses GFService, SHDocVw, SOAPHTTPClient, XMLDoc, msxmldom, XMLIntf, Dialogs, SysUtils, Windows,
: Messages, Classes, Controls, Forms, StdCtrls, ComCtrls;
:
: type
: // 부속 Structure 정의
: // STMallInfo = record
: // ....
: // end;
:
: ////////////////////////////////////////////////////////////////////////////////
: // Invoice Class
: ////////////////////////////////////////////////////////////////////////////////
:
: TInvoice = class
: private
: bInit : boolean; // Init Flag
: MkImid : string; // '21388'
: CustomerCode : string; // '00001'~'99999'
: OrderID : integer; // 000001~999999
: HTTPRIO : THTTPRIO;
: XMLDocument : TXMLDocument;
: protected
:
: public
: function Init(var HTTPRIO : THTTPRIO; var XMLDocument : TXMLDocument) : boolean;
: .....
: end;
:
: implementation
: |