벽에 머리를 네번 찧어야 될 것 같네요.. ㅠ.ㅠ;;;;;; 왜 그랬지... ..
감솨~~
civilian 님이 쓰신 글 :
: 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
: :