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

dll调用的相关问题

答題得分者是:dllee
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-09-02 17:10:35 IP:222.184.xxx.xxx 訂閱
dll中的函数说明:
获取联系人信息
Syntax:
int GetPersonInfo ( char * CardID, Char* DataBuffer );
Parameter
参数
参数 输入/输出 参数名 是否可空 类型
CardID IN 编号 N VARCHAR(10)
DataBuffer OUT 返回信息
Return(s) :
0 – Succuss
-1 - Failure
DataBuffer说明:
0户编号|1人员编号|2证号|3人员姓名


type
TFarProc = function...........;//问题1:这一块如何写
var
HInst:THandle;
FPointer:TFarProc;
begin
HInst:=LoadLibrary('ABC.dll');
if HInst>0 then
begin
FPointer:=GetProcAddress(HInst,'GetPersonInfo');
if @FPointer<>nil then
FPointer(12345678) //问题2这一块这样写行不行
else ShowMessage('函数未发现');
FreeLibrary(HInst);
end
else ShowMessage('DLL文件未发现');
end;

问题3:还有就如何收取返回结果,比如我只要一个人员姓名,如何处理?
------
我的编程起步于ktop,我将永远支持ktop
dllee
站務副站長


發表:321
回覆:2519
積分:1711
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-09-02 20:47:22 IP:59.105.xxx.xxx 訂閱
請看看這篇 Using C DLLs with Delphi (and HeadConv v4.20) http://www.drbob42.com/delphi/headconv.htm
使用作者提供的工具,可以將 C 的 header (您問題的 Syntex 部分) 變成 Delphi 可使用的函式宣告,
可以直接作靜態載入,不必像您程式作到動態載入(比較麻煩)。

函式可直接用,只要按其要求,傳入 CardID 讀出 DataBuffer 看看內容,再看如何取出您要的姓名部分即可。
------
http://www.ViewMove.com
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-09-03 10:44:15 IP:61.222.xxx.xxx 訂閱
定義  PChar

執行 FPointer 前需先定義兩個變數 PChar ,及 GetMem FreeMem 取得及釋放。
FPointer(A,B)
系統時間:2024-04-25 19:48:14
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!