您好,登錄后才能下訂單哦!
前段時間接了個醫院管理系統的小項目,要求接入本市醫保接口,本市的醫保接口采用的是東軟的接口平臺,為動態庫版,只提供了幾個配置文件和幾個DLL動態庫,文檔中寫的不夠詳細,并沒有各種語言平臺的例子,只能一點一點的摸索,雖然自己做項目也做了七八年了,但也是第一次使用vb.net,就索性一邊做一邊摸索吧!
查遍了搜索引擎,也沒有找到相似的案例,只有自己琢磨,東軟提供的文檔內容如下:
1.1 INIT 初始化函數
1.1.1 功能說明
系統啟動前調用init函數進行初始化,檢查配置文件等完成動態庫初始化準備工作。
1.1.2 語法規則 Syntax:
對外提供接口:
SiInterface.dll
Int INIT(char *pOutputInfo)
輸入參數:無
輸出參數:outputData char*
返回值: 成功 0 失敗 -1
1.1.3 出參格式: outputData char*
提示信息,如出錯則為錯誤提示,HIS開發商需提示出錯誤信息。
1.2 BUSINESS_HANDLE 業務函數
1.2.1 語法規則 Syntax:
對外提供接口:
SiInterface.dll
int WINAPI BUSINESS_HANDLE(const char* inputData,
char* outputData)
輸入參數:inputData
輸出參數:outputData char*
返回值: 成功 0 失敗 -1
輸入參數是以“^、$、|”分割的字符串
輸出也是以“^”“@、^、$、|”分割的字符串
調用輸入參數的函數經常用,但輸出參數卻沒用過,并且所有對醫保平臺進行的操作都是通過BUSINESS_HANDLE函數來進行,這個問題琢磨了一個星期,終于弄明白了。
我的解決方法如下:
1、導入動態庫
<DllImport("SiInterface.dll", EntryPoint:="INIT")> Public Shared Function INIT(ByVal OutputInfo As String) As Integer
End Function
<DllImport("SiInterface.dll", EntryPoint:="BUSINESS_HANDLE")> Public Shared Function BUSINESS_HANDLE(ByVal inputData As String, <Out> ByVal outputData As StringBuilder) As Integer
End Function
2、調用動態庫
Dim inputdata As String '入參
Dim outputdata As New StringBuilder() ‘出參
outputdata.Capacity = 1024 ’由于調用出參需要分配內存,現分配內存空間用于存儲出參
inputdata="入參字符串"
BUSINESS_HANDLE(inputdata, outputdata)‘調用函數
此時執行后,outputdata將會有醫保接口返回的信息
其中 Dim outputdata As New StringBuilder() 此句最重要,我試了好多重方法,都不好用,只有這句才能用。
希望能對碼農同行們有些幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。