DLL問題:第一次調用沒問題,再次調用就有問題,請教前輩 |
尚未結案
|
chuyuan
一般會員 ![]() ![]() 發表:12 回覆:9 積分:4 註冊:2004-05-12 發送簡訊給我 |
DLL如下:
library gysdll; uses //sharemem,
SysUtils,adodb,
Classes; {$R *.res}
procedure gys1(g:TADOQuery);stdcall;
begin
g.DisableControls;
g.First;
while not g.Eof do
begin
g.Edit;
g['gysbh']:=copy(trim(g['gysbh']),1,4) '009';
g.Post;
g.Next;
end;
g.EnableControls;
end; exports
gys1; begin
end. 調用如下 unit Unit1; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls; type
Tfm = class(TForm)
DataSource1: TDataSource;
gys: TADOQuery;
DBGrid1: TDBGrid;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; var
fm: Tfm; implementation {$R *.dfm}
//procedure gys1(g:TADOQuery);stdcall;
//external 'gysdll.dll'; procedure Tfm.Button1Click(Sender: TObject);
type
gys2=procedure(g:TADOQuery);stdcall;
var
th:thandle;
tf:gys2;
tp:tfarproc;
begin
th:=loadlibrary('gysdll.dll');
if th>0 then
try
tp:=getprocaddress(th,pchar('gys1'));
if tp<>nil then
begin
tf:=gys2(tp);
tf(fm.gys);
end;
finally
freelibrary(th);
end;
//gys1(fm.gys);
end; end.
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |