帮我看看下面的代码好吗? order:=TInstr(PFunc)(txt,Key)?强制转换函数?恐怕不行! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你的定义为function TInStr(Source:PChar;Check:Char):Integer;而你的调用为order:=TInstr(PFunc)(txt,Key);不用我说了吧,参数当然不对啊 unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; procedure Edit2KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end;var Form1: TForm1; function TInStr:Boolean; stdcall; external 'd:\ls\project2.dll'name 'Instr';implementation{$R *.DFM}procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);var order:Integer; txt:PChar; PFunc:TFarProc;begin if Moudle >32 then begin Edit2.Text := ''; txt:=StrAlloc(80); txt:=StrPcopy(txt,Edit1.Text); order:=TInstr(txt,Key); if Order = -1 then showmessage('不包含该字符') else showmessage('位于第:'+IntToStr(Order+1)+'位'); end;end;end. PFunc:=GetProcAddress(Moudle,'TInStr'); unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; procedure Edit2KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end;var Form1: TForm1; TInStr = function (Source:PChar;Check:Char):Integer; stdcall; //这句implementation{$R *.DFM}procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);var Order :integer; PFunc:TInStr ;//这句 txt:PChar; Moudle:THandle;begin Moudle := Loadlibrary('d:\ls\project2.dll'); if Moudle >32 then begin Edit2.Text := ''; ◎PFunc:=GetProcAddress(Moudle,'InStr');//这句 txt:=StrAlloc(80); txt:=StrPcopy(txt,Edit1.Text); order:=PFunc(txt,Key); if Order = -1 then showmessage('不包含该字符') else showmessage('位于第:'+IntToStr(Order+1)+'位'); end;end;end.//一定行,给分吧。 delphi 自己做的子函数 里面用到了Edit等控件就不行?? 求助 给点建议好吗? 高分求一个算法 火急寻求帮助(把剩下的钱完全奉上)!! 当把数据库中身份证号导出到Excel表时,在Excel表中人数据老是不正确,用科学记数法方式显示 高分求教INTRAWE的数据库问题 怎样用过程条显示下载的进度? 如何使用ADOQUERY中的setfields?? 如何能够重载函数与过程 求助:DBGrid 不能即时更新 ●●●〓〓 招聘Delphi程序员 〓〓●●● 如果从机器A上要上传大量的数据到另外一台机器B上的话,该如何作?各位帮帮小女子。
function TInStr(Source:PChar;Check:Char):Integer;
而你的调用为
order:=TInstr(PFunc)(txt,Key);不用我说了吧,参数当然不对啊
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations } public
{ Public declarations } end;var
Form1: TForm1;
function TInStr:Boolean; stdcall; external 'd:\ls\project2.dll'name 'Instr';
implementation{$R *.DFM}procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
var
order:Integer;
txt:PChar;
PFunc:TFarProc;
begin
if Moudle >32 then
begin
Edit2.Text := '';
txt:=StrAlloc(80);
txt:=StrPcopy(txt,Edit1.Text);
order:=TInstr(txt,Key);
if Order = -1 then
showmessage('不包含该字符')
else
showmessage('位于第:'+IntToStr(Order+1)+'位');
end;
end;end.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations } public
{ Public declarations } end;var
Form1: TForm1;
TInStr = function (Source:PChar;Check:Char):Integer; stdcall; //这句
implementation{$R *.DFM}procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
var
Order :integer;
PFunc:TInStr ;//这句
txt:PChar;
Moudle:THandle;
begin
Moudle := Loadlibrary('d:\ls\project2.dll');
if Moudle >32 then
begin
Edit2.Text := '';
◎PFunc:=GetProcAddress(Moudle,'InStr');//这句
txt:=StrAlloc(80);
txt:=StrPcopy(txt,Edit1.Text);
order:=PFunc(txt,Key);
if Order = -1 then
showmessage('不包含该字符')
else
showmessage('位于第:'+IntToStr(Order+1)+'位');
end;
end;end.
//一定行,给分吧。