Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.007 c
14-71385
Psoryi
2002-07-25 06:18
2002.08.22
народ, хочу научится


3-70970
NDR
2002-08-02 13:56
2002.08.22
ОТМЕНА последнего действия !


4-71426
Evgenyk
2002-06-19 15:17
2002.08.22
Почему не работает RegistryConnect ?


14-71343
melifaro
2002-07-26 19:52
2002.08.22
Чего-чего там на землю летит?


6-71290
Monak
2002-05-21 22:26
2002.08.22
Клавиатура и мыши





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский