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不一致所引起的问题
来看以下例子:
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不一致所引起的问题
本文介绍Delphi2010中新增的delayed声明方式,该方式允许在缺少API函数的情况下进行编译并跳过这些函数的调用,特别适用于处理不同操作系统版本间的API差异。
5579

被折叠的 条评论
为什么被折叠?



