varargs指令

 Delphi 6。Windows.pasを覗いてみたが、wsprintfは相変わらずstdcallのままであった。D6からはvarargs指令が使えるので、ちょいと実験。

function wsprintf(Output: PChar; Format: PChar): Integer;
 cdecl; varargs; external user32 name 'wsprintfA';

var
  Buf: string;
 N: Integer;
begin
 Memo1.Lines.Clear;
 N := 64;
 SetLength(Buf,1024);
 wsprintf(PChar(Buf),'N: %d %x',N,N);
 SetLength(Buf,StrLen(PChar(Buf)));
 Memo1.Lines.Add(Buf);
end;

 呼べた。確かに呼べた。うー、気色悪…。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください