Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.22;
Скачать: CL | DM;

Вниз

перевести код с С на Паскаль   Найти похожие ветки 

 
Natali   (2002-08-13 08:05) [0]

Здравствуйте, помогите, пожалуйста перевести код с С на Паскаль, не все понимаю.
Заранее благодарю, Наташа.

LPVOID lpMsgBuf;

FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);

// Display the string.
MessageBox( NULL, lpMsgBuf, "GetLastError", MB_OK|MB_ICONINFORMATION );

// Free the buffer.
LocalFree( lpMsgBuf );


 
Opuhshii ©   (2002-08-13 08:14) [1]

var
lpMsgBuf:Pointer;
begin

GetMem(lpMsgBuf,1000); // а разве память выделять ненадо?,...

FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER + FORMAT_MESSAGE_FROM_SYSTEM, nil, GetLastError, DEFAULT_CHARSET, Pchar(lpMsgBuf), 0, nil);
MessageBox(Self.Handle, lpMsgBuf, "GetLastError", MB_OK + MB_ICONINFORMATION );
FreeMem(lpMsgBuf);

end;


 
Внук ©   (2002-08-13 08:48) [2]

>>Opuhshii © (13.08.02 08:14)
Память выделять не надо (FORMAT_MESSAGE_ALLOCATE_BUFFER)

>>Natali (13.08.02 08:05) Более строго

uses Windows;

var lpMsgBuf:Pointer;

begin
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM,nil,GetLastError,Word(SUBLANG_DEFAULT) shl 10 or Word(LANG_NEUTRAL),PChar(lpMsgBuf), 0,nil);
MessageBox(nil,lpMsgBuf,"GetLastError",MB_OK or MB_ICONINFORMATION);
LocalFree(lpMsgBuf);
end;




 
Suntechnic ©   (2002-08-13 09:10) [3]

А может не надо переводить? Это код который выводит сообщение от ф-ции GetLastError. Но в Delphi есть ф-ция которая всё это делает за вас(к сожалению название наизусть не помню, а Делфи под рукой нет). Ну как, знатоки Делфи, подскажите даме, чтобы она не морочила себе голову...


 
Внук ©   (2002-08-13 09:16) [4]

ShowMessage(SysErrorMessage(GetLastError));
Но желание клиента закон :) Правда, оба вышеприведенных кода у меня не работают :)))))) Исчу ашипки


 
Natali   (2002-08-13 09:29) [5]

Спасибо вам большое за ShowMessage(SysErrorMessage(GetLastError)); Какие вы все хорошие. Пока.


 
Внук ©   (2002-08-13 09:51) [6]

Нашел ошибку (@lpMsgBuf вместо PChar(lpMsgBuf))

var lpMsgBuf:Pointer; //Должна быть глобальной

begin
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_ALLOCATE_BUFFER,nil,
GetLastError,
Word(SUBLANG_DEFAULT) shl 10 or Word(LANG_NEUTRAL),
@lpMsgBuf,0,nil);
MessageBox(0,lpMsgBuf,"GetLastError",MB_OK or MB_ICONINFORMATION);
LocalFree(Cardinal(lpMsgBuf));
end;


 
Zelius ©   (2002-08-13 10:02) [7]

А есть еще такая прикольная ф-ия, для совсем ленивых, как я :)
Win32Check(WordBool); которая сама поднимет эксепшн, если что не так :)



Страницы: 1 вся ветка

Текущий архив: 2002.08.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
7-71404
Max2000
2002-06-04 17:44
2002.08.22
Мастера напомните плиз!!!!!!


1-71255
KPY
2002-08-12 06:49
2002.08.22
Помогите с новым типом


1-71238
amochkin
2002-08-11 20:43
2002.08.22
Прорисовка на desktop


1-71124
Hawk2
2002-08-12 17:58
2002.08.22
Количество дней в месяце.


1-71222
Banan
2002-08-09 19:27
2002.08.22
работа с ini-файлом