Главная страница
    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-71335
vads
2002-07-25 10:48
2002.08.22
Вопрос + предложение


4-71441
Maximus II
2002-06-20 14:08
2002.08.22
Копирование фрагмента *.bmp на экран.


1-71074
VL
2002-08-09 11:15
2002.08.22
Вопрос по взаимодействию Delphi - Excell


1-71261
big_bugzy
2002-08-12 10:54
2002.08.22
Помогите разобраться с координитами


3-70972
nick_sniper
2002-08-01 15:56
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский