線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2193
推到 Plurk!
推到 Facebook!

讀健保IC卡資料會產生Access Violation At Address 20202020

缺席
alex621013
一般會員


發表:1
回覆:4
積分:1
註冊:2005-05-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-27 15:19:11 IP:211.75.xxx.xxx 未訂閱
不知是哪裡出錯, 每個label都可以正常顯示資料, 都就是在最後會出現 Access Violation At Address 20202020 的訊息。 還請各位先進不吝賜教! unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,StrUtils; type TfmMain = class(TForm) Button1: TButton; Label1: TLabel; Label19: TLabel; Label2: TLabel; Label16: TLabel; Label3: TLabel; Label18: TLabel; Label5: TLabel; Label15: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var fmMain: TfmMain; implementation Function csOpenCom(pcom:Integer):Integer stdcall;external 'cshis.dll'; Function hisGetRegisterBasic(pBuffer:PChar;var iBufferLen:Integer):Integer stdcall;external 'cshis.dll'; Function csCloseCom:Integer stdcall;external 'cshis.dll'; {$R *.dfm} procedure TfmMain.Button1Click(Sender: TObject); var err:Integer; iBufferLen:Integer; pBuffer:PChar; begin err:= csOpenCom(0); if err <> 0 then MessageDlg(IntToStr(err),mtError,[mbOK],-1); iBufferLen := 78; err := hisGetRegisterBasic(pBuffer, iBufferLen); If err = 0 Then begin //基本資料段 //卡片號碼 Label19.Caption := MidStr(pBuffer, 1, 12); //姓名 Label16.Caption := MidStr(pBuffer, 13, 20); //身份證字號 Label18.Caption := MidStr(pBuffer, 33, 10); //出生日期 Label15.Caption := MidStr(pBuffer, 43, 7); end else MessageDlg(IntToStr(err),mtError,[mbOK],-1); err:= csCloseCOm; end; end.
alex621013
一般會員


發表:1
回覆:4
積分:1
註冊:2005-05-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-28 09:51:23 IP:211.75.xxx.xxx 未訂閱
小弟已解決此問題, 就此結案。 沒想到竟在這麼不起眼的地方。 unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,StrUtils; type TfmMain = class(TForm) Button1: TButton; Label1: TLabel; Label19: TLabel; Label2: TLabel; Label16: TLabel; Label3: TLabel; Label18: TLabel; Label5: TLabel; Label15: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var fmMain: TfmMain; implementation Function csOpenCom(pcom:Integer):Integer stdcall;external 'cshis.dll'; Function hisGetRegisterBasic(pBuffer:PChar;var iBufferLen:Integer):Integer stdcall;external 'cshis.dll'; Function csCloseCom:Integer stdcall;external 'cshis.dll'; {$R *.dfm} procedure TfmMain.Button1Click(Sender: TObject); var err:Integer; iBufferLen:Integer; pBuffer:Array [0..78] of Char;// <-- 改這樣就可以了= =! begin err:= csOpenCom(0); if err <> 0 then MessageDlg(IntToStr(err),mtError,[mbOK],-1); iBufferLen := 78; err := hisGetRegisterBasic(pBuffer, iBufferLen); If err = 0 Then begin //基本資料段 //卡片號碼 Label19.Caption := MidStr(pBuffer, 1, 12); //姓名 Label16.Caption := MidStr(pBuffer, 13, 20); //身份證字號 Label18.Caption := MidStr(pBuffer, 33, 10); //出生日期 Label15.Caption := MidStr(pBuffer, 43, 7); end else MessageDlg(IntToStr(err),mtError,[mbOK],-1); err:= csCloseCOm; end; end.
系統時間:2024-04-27 11:12:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!