Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > FormatMessage - с чем запутался?


Автор: zalex 22.12.2005, 00:42
ПРивет всем. Получаю код ошибки при помощи GetLastError и пытаюсь получить строку с текстом. Код такой
Код

var h:Cardinal;
  dw1,dw2:dword;
  dwret:dword;
  MyMessage2:PChar;
  a:dword;
  LPDWord:Word;
begin

  a:=1769612;//Get_Stats
  DW1:=0;
  if Not DeviceIOControl(h,a,addr(dw1),4,addr(dw2),4,dwret, nil)
  then begin
    LPDWORD:=GetLastError;

    FormatMessage(
    FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_IGNORE_INSERTS,
    0,
    LPDWord,//
    0, // Default language
    MyMessage2,
    0, 
    nil
    );
    ShowMessage(String(MyMessage2));
  end;

На строке с ShowMessage выскакивает AV. Сабж.

Автор: Girder 22.12.2005, 02:46
Str:=SysErrorMessage(GetLastError());

Автор: zalex 22.12.2005, 20:02
ОК, с указанной функцией всё гораздо проще и работает. Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)