2

Delphiは初めてで、何年も前に実装されたプロジェクトでデバッグを試みています。私のアイデアはDelphi2010とエラーのあるコードです。

function DrawTextExW(hDC: HDC; lpString: PWideChar; nCount: Integer; var lpRect:
TRect; uFormat: UINT; dtp: PDRAWTEXTPARAMS): Integer;

const
   MAX_STATIC_BUFFER = 8192;
const
   STATIC_BUFFER_LEN: integer = 8192;
const
   DT_PREFIXONLY = $00200000;

var
...
  tm: TTextMetricA;
...

begin
  ...

  GetTextMetrics(hDC, tm);    //Error Line
  if (uFormat and DT_EXTERNALLEADING) = DT_EXTERNALLEADING then
    lh := tm.tmHeight + tm.tmExternalLeading
  else
    lh := tm.tmHeight;

  ...
end

その行に「[DCCエラー]ElVCLUtils.pas(3555):E2033実際の変数パラメーターと正式な変数パラメーターのタイプは同一である必要があります」というエラーが表示されます。このコードの何が問題になっていますか?

4

1 に答える 1

7

どちらかを使用する必要があります

var
...
  tm: TTextMetric;
...

begin
  ...

  GetTextMetrics(hDC, tm);

また

var
...
  tm: TTextMetricA;
...

begin
  ...

  GetTextMetricsA(hDC, tm);

最初のバージョンが望ましいです。

于 2012-11-07T13:16:27.293 に答える