当前位置: 首页 > news >正文

Delphi2010 API延迟加载

delayed是Delphi2010中一种新的声明方式,使用它将可以在不适当的环境下绕过不存在的API函数,并且对该API的调用进行“跳过”的处理

来看以下例子:
function GetTouchInputInfo(hTouchInput: THandle; cInputs: UINT;
pInputs: PTouchInput; cbSize: Integer): BOOL; stdcall;
external user32 name 'GetTouchInputInfo' delayed;

这是定义于keyboard单元内的API函数,用于实现Windows 7下触摸屏的消息获取,在Windows 7的user32.dll内定义了这个函数,但是XP下却并没有。于是,在D2010内作此定义,即可在XP下编译执行通过。
若去掉delayed关键字,则XP下可编译但不可运行,会提示无法定位GetTouchInputInfo的入口点

采用此技术,在D2010下能够方便的实现版本差异的控制,也将更容易的避开由于API 或是自己写的DLL不一致所引起的问题

相关文章:

  • 移动客户端搜索速度优化 —— 手机百度“云和端技术实践”沙龙
  • 压缩Sqlite数据文件大小,解决数据删除后占用空间不变的问题
  • 在Windows Mobile和Wince(Windows Embedded CE)下封装Native DLL的回调函数
  • 【转】Windows GUI自动化测试技术的比较和展望
  • dbf文件修复
  • 在Salesforce中编写Unit Test
  • oracle sql获取随机数
  • WM有约II(七):番外篇
  • PHP中的include功能
  • 多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄
  • ffdshow 源代码分析1 : 整体结构
  • 关于一道面试题,使用C#实现字符串反转算法
  • 开源科学计算语言Fortress
  • java范型简介
  • 敏捷软件开发实践-Sprint Retrospective Meeting(转)
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • echarts花样作死的坑
  • eclipse(luna)创建web工程
  • javascript从右向左截取指定位数字符的3种方法
  • JavaScript的使用你知道几种?(上)
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Js基础知识(四) - js运行原理与机制
  • Markdown 语法简单说明
  • react 代码优化(一) ——事件处理
  • socket.io+express实现聊天室的思考(三)
  • Spring Boot快速入门(一):Hello Spring Boot
  • SQLServer之索引简介
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 讲清楚之javascript作用域
  • 京东美团研发面经
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 深入浅出Node.js
  • 实现菜单下拉伸展折叠效果demo
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 微信小程序设置上一页数据
  • 云大使推广中的常见热门问题
  • HanLP分词命名实体提取详解
  • Nginx实现动静分离
  • 容器镜像
  • ​学习一下,什么是预包装食品?​
  • #大学#套接字
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (翻译)terry crowley: 写给程序员
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • .net 8 发布了,试下微软最近强推的MAUI
  • .Net 路由处理厉害了
  • .NET 使用配置文件
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .NET序列化 serializable,反序列化
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)