我正在查看从 C 移植到 PASCAL(win32 API)的应用程序,但无法理解为什么 C 中的 PAINTSTRUCT 类型会更改为 PASCAL 中的 TpaintStruct。
以下是可以看到的片段:
long FAR PASCAL ClientWndProc(HWND hwnd, UINT msg, UINT mp1, LONG mp2)
{
static int cxClient, cyClient;
HBITMAP hbm;
BITMAP bm;
PAINTSTRUCT ps;
...
变成
function ClientWndProc(hwnd: WinTypes.HWND; msg: Word; mp1: Word; mp2: Longint): Longint; export;
var
hdc: WinTypes.HDC;
hdcMem: WinTypes.HDC;
hbm: WinTypes.HBITMAP;
bm: TBITMAP;
ps: TpaintStruct;
...
我需要自己移植一个应用程序。同样的事情是否也适用于 TEXTMETRIC
类型?我应该在 PASCAL 中将其称为 TtextMetric
吗?
最佳答案
Delphi(以及之前的 Turbo Pascal,IIRC)一直有在类型前加上 T
前缀的习惯,如 TStringList
、TButton
、TCustomForm
、TDateTime
等等。
您可以找到已经在 Windows.pas
单元中为您声明的 TTextMetric
(和 TPaintStruct
),以及许多标准的 WinAPI功能。
(顺便说一句,WinTypes
已被弃用。它是 Delphi 1 中针对 16 位应用程序的旧遗留物,在 Delphi 的更高版本中自动被 Windows 取代。)
关于c - 为什么 C 中的 PAINTSTRUCT 是 PASCAL 中的 TpaintStruct?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8113746/