dll调用的相关问题 |
答題得分者是:dllee
|
ntjrr
高階會員 ![]() ![]() ![]() ![]() 發表:240 回覆:312 積分:110 註冊:2005-04-24 發送簡訊給我 |
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 發送簡訊給我 |
請看看這篇 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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |