delphi动态调用dll出错,请指导

主程序:unitUnit1;interfaceusesShareMem,Windows,Messages,SysUtils,Variants,Classes,Graphi... 主程序:
unit Unit1;interfaceuses ShareMem,Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type plus=function(x,y:double):double; stdcall; TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);varpfunc:TFarProc;hd1:THandle;a,b:double;begina:= strtofloat(edit1.text);b:= strtofloat(edit2.text);hd1:=loadlibrary('Project2.dll');if hd1<>0 thenbeginpfunc:=getprocaddress(hd1,'Project2.dll');edit3.text:=floattostr(plus(pfunc)(a,b));end; freelibrary(hd1);end;end.

dll程序代码:

library Project2;uses SysUtils, Classes;{$R *.res}function plus(x,y:double):double; stdcall;beginplus:=x+y;end;exportsplus;beginend.

出错图片:
展开
 我来答
zhenxin0603
2013-05-21 · TA获得超过600个赞
知道小有建树答主
回答量:600
采纳率:100%
帮助的人:452万
展开全部
pfunc:=getprocaddress(hd1,'Project2.dll');
改为
pfunc:=getprocaddress(hd1,'plus');
更多追问追答
追问

运行后这是什么意思啊。

追答
plus=function(x,y:double):double; stdcall;
后边的stdcall去掉试试,即改为
plus=function(x,y:double):double;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式