無法呼叫RFID的dll |
缺席
|
cubi
初階會員 發表:56 回覆:94 積分:35 註冊:2002-04-15 發送簡訊給我 |
各位前輩好
小弟最近在試RFID出勤打卡遇到一個問題,就是無法呼叫廠商所附的dll, 以下是廠商提供的sdk範例與宣告: ps: RFID的溝通介面是TCP/IP ==================================================================================== vc 函數格式: [code cpp] HANDLE OpenController(LPCTSTR host, UINT port, LPMESG_CALLBACK getDataEvent, BYTE controllerID) [/code] host LPCTSTR [in]控制器IP地址 port UINT [in]埠 getDataEvent LPMESG_CALLBACK [in]程式定義的回呼函數,用來處理發送或接收完資料的處理。 controllerID BYTE [in]連接的控制器ID,1~255 回呼函數類型定義: [code cpp] //定義 typedef void (WINAPI *LPMESG_CALLBACK)(LPCSTR buff, UINT nBuffType) [/code] [code cpp] //範例: HANDLE instance = OpenController(_T(“192.168.1.1”), 10002, HandleMessage, 1); [/code] ==================================================================================== 以下是小弟在delphi的實作 MTAPI.pas (定義dll) ---------------------- [code delphi] const __MTAPI__ = 'c:\\MTAPI.dll'; type LPMESG_CALLBACK = procedure(buff: LPCTSTR; nBuffType: UNIT32) of object; function OpenController(host: PChar; port: Integer; getDataEvent: Pointer; controllerID: Byte): Cardinal; stdcall; implementation function OpenController; external __MTAPI__ name 'OpenController'; [/code] unit1.pas ----------------------- [code delphi] unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, MTAPI, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Panel1: TPanel; Button1: TButton; Memo1: TMemo; Button2: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation const __ControlID__ = 1; var instance: Cardinal {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin instance := OpenController('192.168.1.35', 10002, nil, __ControlID__); if (instance = 0) then Memo1.Lines.Add('Open Controller 失敗') else Memo1.Lines.Add('Open Controller 成功'); end; end. [/code] ==================================================================================== 廠商所附的sample是vb.net及vc.net,執行當然沒問題 而小弟用以上程式執行時,返回值一都是0,而且也沒出現錯誤訊息 小弟有用sniffer去看封包,若用廠商的sample,sniffer是有抓到sample發給RFID感應機的封包, 但若執行小弟的程式時,就沒有封包發出 不知道是哪出問題了,這問題小弟已經試了快2個禮拜了,小也弟與廠商溝通過, 廠商說他們沒辦法給我delphi的sample,他們只有.net的, 小弟也試過用bcb去做,返回值一樣都是0 感謝各位前輩的不吝指導 感謝....... |
cubi
初階會員 發表:56 回覆:94 積分:35 註冊:2002-04-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |