全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1891
推到 Plurk!
推到 Facebook!

一些用c語言所寫的dll之函數如何在delphi中宣告使用?

 
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-24 21:58:05 IP:220.131.xxx.xxx 訂閱
以下是健保局委託廠商用c語言所寫的dll之函數,請問如何在delphi中宣告使用?
long PEA_web_login(char s_host_name[],unsigned short n_port,
char s_bus_code[],char s_uid[],char s_pwd[])

我的i宣告:Function PEA_web_login(s_host_name:pchar;n_port:integer;s_bus_code,s_uid,s_pwd:pchar):integer;stdcall;
if PEA_web_login('210.69.214.155',1502,'FA',pchar(trim(uid.Text)),pchar(trim(pwd.Text))) = 0 then
我呼叫測試是成功
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
void PEA_get_errmsg(char s_errmsg[],int n_size)
(1)用途
讀取錯誤訊息

(2)參數說明
a. s_errmsg
準備接收錯誤訊息之字串。
b. n_size
準備接收錯誤訊息之字串大小。錯誤訊息最長為256 bytes。
(3)回傳值
無。

我的i宣告:Procedure PEA_get_errmsg (s_buf:pchar; var n_size:byte);
不管如何改變呼叫程式碼,顯示錯誤訊息總是很怪異如4??或一片空白,長度是5或6,我有一點疑問是c語言無法傳參數位址,我如何從能從s_buf獲取錯誤訊息呢?不過健保局委託廠商附上vb寫的程式確能獲取錯誤訊息,是否代表是我的程式之問題呢?
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
long PEA_fa_upload(char s_req_file[], char s_data_files[] ,
char s_recv_seq[],int n_size)

(1)用途
醫療費用申報資料上傳
(2) 參數說明
a. s_req_file
申報識別欄位資料檔案。
檔案格式如下:
APPL_TYPE=X
FEE_YM=YYYMM
MONTH_MARK=X
HOSP_DATA_TYPE=XX
FILE_DATA_TYPE=X
CH_CODE=X
COMPRESS_MARK=X

中文名稱如下:
申報類別=X
費用年月=XXXXX
月份註記=X
醫事類別=XX
檔案資料格式=X
中文碼=X
壓縮註記=X

欄位意義如下:
(a) 申報類別:
1:送核、2:補報
(b) 費用年月:
民國年月(YYYMM)
(c) 月份註記:
3:全月、1:上半月、2:下半月
(d) 醫事類別:
10:門診代辦業務
11:門診西醫診所
12:門診西醫醫院
13:門診牙醫
14:門診中醫
15:門診洗腎
19:門診其他醫事機構
20:住診代辦業務
21:住診西醫診所
22:住診西醫醫院
29:住診其他醫事機構
30:特約藥局
40:物理治療所
50:特約檢驗所
91:住院通知表
92:門診洗腎EPO注射記錄表
93:預防保健服務檢查結果表
94:中醫診察費申報表

(e) 檔案資料格式:
1:媒體格式
(f) 中文碼:
B:BIG5 E:EUC C:CNS N:通漢碼
(g) 壓縮註記:
0:未壓縮 Z:ZIP。
b. s_data_files
申報資料檔案名稱,包含路徑。以逗點分隔多個申報檔案。
c. s_recv_seq
準備接收收件序號之字串。
d. n_size
準備接收收件序號之字串大小。收件序號為13 Bytes。

(3)回傳值
成功回傳0。失敗回傳不為0的值

請問參數char s_req_file[]在delphi如何宣告
請問參數char s_recv_seq[]]在delphi如何宣告,是否要事先要配置記憶体給要傳遞之參數
請問參數int n_size在delphi如何宣告
我尚未測試這函數呼叫

ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-24 23:49:07 IP:220.131.xxx.xxx 訂閱
以下函數在vb之宣告
Public Declare Function PEA_web_login Lib "PEAT1511B01.dll" (ByVal s_host_name As String, ByVal n_port As Long, ByVal s_bus_code As String, ByVal s_uid As String, ByVal s_pwd As String) As Long
Public Declare Function PEA_fa_upload Lib "PEAT1511B01.dll" (ByVal s_req_file As String, ByVal s_data_files As String, ByVal s_recv_seq As String, ByVal n_size As Long) As Long
Public Declare Function PEA_fa_del Lib "PEAT1511B01.dll" (ByVal s_recv_seq As String) As Long
Public Declare Function PEA_fa_recv_qry Lib "PEAT1511B01.dll" (ByVal s_req_file As String, ByVal s_rsp_file As String) As Long
Public Declare Function PEA_fa_proc_qry Lib "PEAT1511B01.dll" (ByVal s_req_file As String, ByVal s_rsp_file As String) As Long
Public Declare Function PEA_web_download_lst Lib "PEAT1511B01.dll" (ByVal s_req_file As String, ByVal s_rsp_file As String) As Long
Public Declare Function PEA_web_download_file Lib "PEAT1511B01.dll" (ByVal s_rfile_name As String, ByVal s_lfile As String) As Long
Public Declare Function PEA_web_logout Lib "PEAT1511B01.dll" () As Long
Public Declare Sub PEA_get_errmsg Lib "PEAT1511B01.dll" (ByVal s_buf As String, ByVal n_size As Long)


醫療費用申報程式介面函式說明
目的:
本程式介面函式功能與WEB介面功能相同。主要是提供醫療院所資訊廠商整合申報介面使用。
與WEB介面差異說明:
1.程式
本程式介面函式為一組socket客戶端程式。與健保局主機上之socket伺服端程式對應。與WEB介面之程式不同。
2.處理邏輯:
本程式介面函式功能與WEB介面功能之處理邏輯相同。
3.執行效率:
目前本介面函式執行效率優於WEB介面。
功能:
本程式介面函式提供以下之功能:
1.登入系統
2.醫療費用申報資料上傳
3.醫療費用申報案件刪除
4.醫療費用申報收件狀況查詢
5.醫療費用申報流程狀態查詢
6.申報相關檔案下載清單查詢
7.申報相關檔案下載檔案讀取
8.登出系統
平台:
UNIX:
peat1501b01.a
Windows
peat1511b01.dll
介面函式說明:
函式(一)說明
long PEA_web_login(char s_host_name[],unsigned short n_port,
char s_bus_code[],char s_uid[],char s_pwd[])
(1)用途
登入系統。
(2)參數說明
a. s_host_name
健保局服務主機名稱或IP。
(目前 VPN專線為 10.253.253.242 )
( Internet 為 210.69.214.155)
b. n_port
健保局服務主機之服務程式埠號。(目前為 1502)
c. s_bus_code
業務類別,固定輸入FA(醫療費用申報)
d. s_uid
用戶代號
e. s_pwd
用戶密碼
(3)回傳值
成功回傳0。失敗回傳不為0的值。
函式(二)說明
long PEA_fa_upload(char s_req_file[], char s_data_files[] ,
char s_recv_seq[],int n_size)
(1)用途
醫療費用申報資料上傳
(2) 參數說明
a. s_req_file
申報識別欄位資料檔案。
檔案格式如下:
APPL_TYPE=X
FEE_YM=YYYMM
MONTH_MARK=X
HOSP_DATA_TYPE=XX
FILE_DATA_TYPE=X
CH_CODE=X
COMPRESS_MARK=X
中文名稱如下:
申報類別=X
費用年月=XXXXX
月份註記=X
醫事類別=XX
檔案資料格式=X
中文碼=X
壓縮註記=X
欄位意義如下:
(a) 申報類別:
1:送核、2:補報
(b) 費用年月:
民國年月(YYYMM)
(c) 月份註記:
3:全月、1:上半月、2:下半月
(d) 醫事類別:
10:門診代辦業務
11:門診西醫診所
12:門診西醫醫院
13:門診牙醫
14:門診中醫
15:門診洗腎
19:門診其他醫事機構
20:住診代辦業務
21:住診西醫診所
22:住診西醫醫院
29:住診其他醫事機構
30:特約藥局
40:物理治療所
50:特約檢驗所
91:住院通知表
92:門診洗腎EPO注射記錄表
93:預防保健服務檢查結果表
94:中醫診察費申報表
(e) 檔案資料格式:
1:媒體格式
(f) 中文碼:
B:BIG5 E:EUC C:CNS N:通漢碼
(g) 壓縮註記:
0:未壓縮 Z:ZIP。
b. s_data_files
申報資料檔案名稱,包含路徑。以逗點分隔多個申報檔案。
c. s_recv_seq
準備接收收件序號之字串。
d. n_size
準備接收收件序號之字串大小。收件序號為13 Bytes。
(3)回傳值
成功回傳0。失敗回傳不為0的值。
函式(三)說明
long PEA_fa_del(char s_recv_seq[])
(1)用途
醫療費用申報案件刪除(檢核錯誤時,系統自動退件,不需再執行刪除作業)
(2)參數說明
a. s_recv_seq
收件序號
(3)回傳值
成功回傳0。失敗回傳不為0的值。
函式(四)說明
long PEA_fa_recv_qry(char s_req_file[],char s_rsp_file[])
(1)用途
醫療費用申報收件狀況查詢
(2)參數說明
a. s_req_file
查詢條件檔,檔案格式如下
RECV_SEQ_NO==XXXXXXXXXXXXX
FEE_YM_S=XXXXX
FEE_YM_E=XXXXX
APPL_TYPE=X
HOSP_DATA_TYPE=XX
MONTH_MARK=X
中文名稱如下:
收件序號=XXXXXXXXXXXXX
費用年月起=XXXXX
費用年月迄=XXXXX
申報類別=X
醫事類別=XX
月份註記=X
b. s_rsp_file
查詢結果檔,檔案格式如下:
查詢結果檔第一行為表頭,其餘為資料。各欄位間以逗點分隔。
第一行表頭如下:
傳送時間,收件序號,費用年月,月份註記,申報日期,申報類別,醫事類別,處理狀態,件數總計,點數總計。
處理狀態說明: 1-檢核中
2-檢核正確
3-檢核錯誤(自動退件,不需刪除)
4-退件
5-刪除
(3)回傳值
成功回傳0。失敗回傳不為0的值。
函式(五)說明
long PEA_fa_proc_qry(char s_req_file[],char s_rsp_file[])
(1)用途
醫療費用申報流程狀態查詢
(2)參數說明
a. s_req_file
查詢條件檔,檔案格式如下:
FEE_YM=XXXXX
HOSP_DATA_TYPE=XX
APPL_TYPE=X
APPLY_DATE=XXXXXXX
中文名稱如下:
費用年月=XXXXX
醫事類別=XX
申報類別=X
申報日期=XXXXXXX
b. s_rsp_file
查詢結果檔,檔案格式如下:
查詢結果檔第一行為表頭,其餘為資料。各欄位間以逗點分隔。
第一行表頭如下:
狀態說明,處理日期,處理備註
(a)狀態說明:
狀態代碼-狀態名稱
(3)回傳值
成功回傳0。失敗回傳不為0的值。
函式(六)說明
long PEA_web_download_lst(char s_req_file[],char s_rsp_file[])
(1)用途
申報相關檔案下載清單查詢
(2)參數說明
a. s_req_file
查詢條件檔,檔案格式如下:
FEE_YM_S=XXXXX
FEE_YM_E=XXXXX
SUPPLY_DATE=XX
ORDER_FIELD=X
中文名稱如下:
費用年月起=XXXXX
費用年月迄=XXXXX
提供下載時間=XX
排序欄位=X
欄位說明:
(a)提供下載日期:
7:7天以內
14:14天以內
30:30天以內
60:60天以內
90:90天以內
0:不限
(b)排序欄位:
1:費用年月
2:檔案名稱
3:提供下載日期
b. s_rsp_file
查詢結果檔,檔案格式如下:
查詢結果檔第一行為表頭,其餘為資料。各欄位間以逗點分隔。
第一行表頭如下
費用年月,檔案名稱,下載備註,提供下載日期,資料說明檔案
(3)回傳值
成功回傳0。失敗回傳不為0的值。
函式(七)說明
long PEA_web_download_file(char s_rfile_name[],char s_lfile [])
(1)用途
申報相關檔案下載檔案讀取
(2)參數說明
a. s_rfile_name
下載檔案檔名。
b. s_lfile
本機存檔檔名。
(3)回傳值
成功回傳0。失敗回傳不為0的值。
函式(八)說明
long PEA_web_logout()
(1)用途
登出
(2)參數說明
無。
(3)回傳值
成功回傳0。失敗回傳不為0的值。
函式(九)說明
void PEA_get_errmsg(char s_errmsg[],int n_size)
(1)用途
讀取錯誤訊息
(2)參數說明
a. s_errmsg
準備接收錯誤訊息之字串。
b. n_size
準備接收錯誤訊息之字串大小。錯誤訊息最長為256 bytes。
(3)回傳值
無。

系統時間:2024-05-17 16:49:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!