delphi - 为什么这段代码声明 DISTINCT 类型?

标签 delphi delphi-xe static-typing

ShlObj.pas 第 9922 行(与 Delphi XE 中相同):

type
  BFFCALLBACK = function(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer stdcall;
  TFNBFFCallBack = type BFFCALLBACK;
  {$EXTERNALSYM BFFCALLBACK}
<小时/>

在这里回答 David Heffernan 的评论,因为我认为这概述了可能的你为什么问这个?问题的相关背景。 Windows API 回调例程的过程类型被声明为类型别名(您知道,规范 API 名称 +“Pascalized”别名,有时反之亦然)。示例有 Windows.PIMAGE_TLS_CALLBACKShlObj.LPFNDFMCALLBACK 等。上面显示的类型声明是一个异常(exception)。这就是我问的原因:-)

最佳答案

这只是强制我们程序员使用TFNBFFCallBack而不是BFFCALLBACK的一种方法。如果它是别名,我们可以将其用于浏览信息结构。在不同的平台上,TFNBFFCallBack 可能指向与 BFFCALLBACK 不同的内容。

关于delphi - 为什么这段代码声明 DISTINCT 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874317/

相关文章:

delphi - Delphi XE4中的EDOMParseError

delphi - 当程序在一定时间内不使用时自动关闭

types - 如何从 Int 派生出自己的区分类型?

delphi - 读写二进制文件?

delphi - 你觉得 D2009 中新的 Ribbon Controls 怎么样?

delphi - 它是一个对象还是一个接口(interface)?我是否需要释放它?

delphi - 安装 JVCL 时出错

c++ - 在派生类中声明为 Virtual 的函数不执行,而是给出编译错误,为什么?

list - OCaml 列表类型行为

delphi - 如果我在应用程序中多次使用一个类,它是否只会被编译到 exe 中一次?