1、 使用Visual C++ 6.0编写和链接DLL
打开Visual C++ 6.0集成开发环境,新建一个Win32 Dynamic-Link Library类型的工程CDLL,在工程中新建一个C语言源文件cdll.c。源文件中的内容如下:
__declspec(dllexport) int max(int x,int y) /* 比较两个整型变量大小的函数max */
{
if (x>y)
return x;
else
return y;
}
输入完毕后按下F7键来编译和链接CDLL.dll,之后可以在存放该工程的文件夹的Debug子文件夹中找到一个名为CDLL的DLL文件,该文件即以上的C语言源程序生成的DLL。
2、 使用Delphi 7编写调用该DLL的应用程序
打开Delphi 7集成开发环境,在默认生成的窗体Form1上拖放3个Edit控件Edit1、Edit2、Edit3和1个Button控件Button1,并在Object Inspector中将3个Edit控件的Text属性都清空。然后在默认生成的Unit1.pas文件的implementation后输入:
function max(x,y: Integer): Integer; stdcall external 'CDLL.DLL';
返回Form1,双击Button1控件,在生成的事件处理程序中输入:
Edit3.Text:=IntToStr(max(StrToInt(Edit1.Text), StrToInt(Edit2.Text)));
输入完毕后,保存这个Project。最后,将CDLL.dll文件copy到保存该Project的文件夹中。
3、 测试
在Delphi集成开发环境下,按下F9来运行刚刚编写的Project。在Edit1中输入2,Edit2中输入4,然后单击Button1,可以看到Edit3中会出现4,测试成功。