扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:王建国 丁丽丽 来源:yesky 2007年11月1日
关键字:
![]() 图2 DLL的动态调用 |
function ShowCalendar(AHandle: THandle; ACaption: String): TDateTime; var DLLForm: TDLLForm; begin Application.Handle := AHandle; DLLForm := TDLLForm.Create(Application); //创建并显示窗体 try DLLForm.Caption := ACaption; DLLForm.ShowModal; //显示方式为模式化 Result := DLLForm.calDLLCalendar.CalendarDate; //返回设定日期 finally DLLForm.Free; //用完后卸载该窗体 end; end; |
procedure TMainForm.Button1Click(Sender: TObject); var OneHandle : THandle; //定义一个句柄变量 begin OneHandle := LoadLibrary('Clendar.dll'); //动态载入DLL,并返回其句柄 try if OneHandle <> 0 then //如果载入成功则获取ShowCalendar函数的地址 @ShowCalendar := GetProcAddress(OneHandle, 'ShowCalendar'); if not (@ShowCalendar = nil) then //如果找到该函数则在主窗体的Label1中显示DLL窗体中设定的日期 Label1.Caption := DateToStr(ShowCalendar(Application.Handle, Caption)) else RaiseLastWin32Error; finally FreeLibrary(OneHandle); //调用完毕收回DLL占用的资源 end; end; |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者