一个关于DLL的问题(100分)

  • 主题发起人 主题发起人 white83
  • 开始时间 开始时间
W

white83

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾:小弟在Delphi6下面定义一个很简单的DLL,源代码如下:

library TestDll;

uses
SysUtils,
Classes,
function SetValue(aValue: Integer): Integer;
begin
result := (aValue + 100);
end;

exports
SetValue;

{$R *.res}

begin
end.

编译之后,生成TestDll.dll文件,但是在Delphi中的另一个工程调用时会出现调用错误。

还望各位大虾帮忙解决!!
 
改成:function SetValue(aValue: Integer): Integer;stdcall
一定行
顺便说一句你的 Result:=(....) 括号是多余的
 

Classes,//<----这个符号也能编译通过?
 
把function SetValue(aValue: Integer): Integer;改为
function SetValue(aValue: Integer): Integer;stdcall;
注意在静态调用时,声明的后面也要加上;stdcall;不然你程序调用完时会报地址错误/
 
都是pascal ,Stdcall不是关键的。只在一致就行。
主要看他是怎么调用和声明的?
 
多人接受答案了。
 

Similar threads

后退
顶部