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

AP傳PChar給DLL函式,接收內容不正確,怎麼辦?

答題得分者是:william
AJ
一般會員


發表:9
回覆:19
積分:20
註冊:2003-06-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-07-24 13:36:18 IP:211.21.xxx.xxx 未訂閱
如標題,我不知道問題出在哪裡,在DLL中DEBUG時,接收到的 內容都不對,實在是很頭痛,因為一定要用PChar指標,所以不 得不解決這個問題,請大大們指導一下,我列出程式碼如下:    
=====AP:=====
...
type Ttest = function(pdata: PChar): integer;
...
var h : THandle;
    ptest : Ttest;
...
implementation    procedure TmainForm.Button1Click(Sender: TObject);
var return_code:integer;
begin      h:=loadlibrary(PCHAR('testdll.dll'));    //load dll file
  if h=0 then
  begin
    shoeMessage('DLL檔無法載入');
    exit;
  end else
  begin
    @ptest := GetProcAddress(h, pchar('test'));
    if @ptest = nil then
      begin
        shoeMessage('無法呼叫DLL函式');
        exit;
      end else
      begin
        return_code:= ptest(pchar('RECORD'));
      end;
  end;
  ...
  ...
end;    =====testdll.DLL:=====
...
function test(pdata: PChar): Integer; stdcall;
...
implementation
...
function test(pdata: PChar): Integer;
var  data:string;
begin
  data:=strpas(pdata);
  if (data='RECORD') then
  begin
    ...
    result:=1;
  end else result:=-1;
end;
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-07-24 13:48:29 IP:147.8.xxx.xxx 未訂閱
type Ttest = function(pdata: PChar): integer; stdcall; 發表人 - william 於 2003/07/24 13:50:31
AJ
一般會員


發表:9
回覆:19
積分:20
註冊:2003-06-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-07-24 15:00:53 IP:211.21.xxx.xxx 未訂閱
@@!! 汗顏! 沒想到是這裡的問題,找了老半天原來......唉 還要多加油了,謝謝大大的指導 ^^y
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-07-24 15:55:56 IP:147.8.xxx.xxx 未訂閱
引言:@@!! 汗顏! 沒想到是這裡的問題,找了老半天原來......唉 還要多加油了,謝謝大大的指導 ^^y
當局者迷,旁觀者清< > 加油< >
系統時間:2024-05-10 15:27:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!