Главная страница
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.015 c
3-71049
Big_Rom
2002-07-30 13:32
2002.08.22
Ну просто тупой запрос а сколько времени экономит


14-71336
Виталий К.
2002-07-23 18:11
2002.08.22
Планировщик в Виндос 98


1-71259
NeyroSpace
2002-08-12 10:38
2002.08.22
Динамическое создание компонента. Edit1.parent := ??? Form1 ;


1-71209
inc(665)
2002-08-09 12:49
2002.08.22
вопрос по RxRichEdit


3-70963
НАРИК
2002-07-30 08:39
2002.08.22
создание программы