delphi调用C的dll但没有返回值,不知道错在哪里了,该怎么处理

delphi调用C的dll但没有返回值,不知道错在哪里了
这是用c编的dll
// DLL.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"


extern "C"_declspec(dllexport)int add(int x,int y)
{
return x+y;
}
保存成了DLL.dll文件。
 delphi中写了一个单元文件add.pas:
unit add;

interface
type
Tadd=function (x:integer;y:integer):integer;stdcall;
Thandle=integer;
implementation

end.
在主窗体的main.pas文件中uses add
然后按钮的事件句柄是
procedure TTestVcDllForm.btn1Click(Sender: TObject);
var
handle:Thandle;
sum:Tadd;
begin
handle:=LoadLibrary('DLL.dll');
if(handle<>0) then
begin
@sum:=GetProcAddress(handle,'add');
if(@sum<>nil)then
begin
edtadd.Text:=IntToStr(sum(StrToInt(edta.Text),StrToInt(edtb.Text)));
end else ShowMessage('调用函数GetProcAddress时出错');
FreeLibrary(handle);
end;

end;
最后的结果没有返回值,和的编辑框是空,程序能运行。求问高手哪里错了?感谢


------解决思路----------------------
Tadd=function (x:integer;y:integer):integer;stdcall;
改成
Tadd=function (x:integer;y:integer):integer;cdecl;
试一下