Форум: "Основная";
Текущий архив: 2002.08.22;
Скачать: [xml.tar.bz2];
Внизперевести код с С на Паскаль Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c