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

一個dll檔的程式不能運作

尚未結案
sundy6719
初階會員


發表:136
回覆:78
積分:42
註冊:2002-07-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-08 00:00:16 IP:211.74.xxx.xxx 未訂閱
我製作了一個dll檔可是不能運作那麼我目前的 專案檔是 procedure TForm1.Button2Click(Sender: TObject); var a,b,c,ccc:integer; ddd:thandle; sss:integer; begin ddd:=loadlibrary('project2.dll'); a:=strtoint(edit1.text); b:=strtoint(edit2.text); c:=strtoint(edit3.text); @sss:=getprocaddress(ddd,'bbb');//可是目前的都會錯誤都會停在這裡然後就不動了也沒有錯誤訊息!!! ccc:=bbb(a,b,c); showmessage('最大值為' inttostr(ccc)); freelibrary(ddd); end; 以下是unit檔的程式碼 function bbb(a,b,c:integer):integer; begin if a>b then if a>c then bbb:=a else bbb:=c else if b>c then bbb:=b else bbb:=c; end; 請問各位前輩我是錯在哪裡呢???謝謝~~~
seaturn99
版主


發表:69
回覆:427
積分:214
註冊:2003-08-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-08 11:33:53 IP:203.66.xxx.xxx 未訂閱
sundy6719 您好:   請將 code 修改成以下,應該就可以執行了,您的原始 code 應該是 compile 階段就會有 error 了      
unit Unit1;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;    type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    {$R *.dfm}     type TExportProc = function (a,b,c:integer):integer;     procedure TForm1.Button1Click(Sender: TObject);
var
  a, b, c, ccc: integer;
  ddd: THandle;
  sss: TExportProc;
begin
  ddd := LoadLibrary('Project2.dll');      if ddd = 0 then
  begin
    ShowMessage('Can not Load Dll Lib!!');
    exit;
  end;      a := strtoint(edit1.text);
  b := strtoint(edit2.text);
  c := strtoint(edit3.text);
  
  sss := GetProcAddress(ddd,'bbb');
  ccc := sss(a, b, c);
  
  showmessage('最大值為'   inttostr(ccc));      FreeLibrary(ddd);
end;    end.    library Project2;    uses
  Unit2 in 'Unit2.pas';    exports
  bbb;    {$R *.RES}    begin
end.        Unit Unit2;    interface    function bbb(a,b,c:integer):integer;export;    implementation    function bbb(a,b,c:integer):integer;
begin
if a>b then
if a>c then
bbb:=a
else
bbb:=c
else
if b>c then
bbb:=b
else
bbb:=c;
end;    end.
---- 我只會兩件事,這也不會,那也不會 ---- 眼見不一定為真
系統時間:2024-11-24 22:12:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!