Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
56 / 56 / 11
Регистрация: 13.04.2009
Сообщений: 169

Не работает FormatMessage

05.04.2011, 13:17. Показов 2111. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Есть программа на делфи, в которой используются функции WinApi. При возникновении исключиние, я получаю ошибку исключиния GetLastError, а затем функцией FormatMessage вывожу описание этой ошибки, из ОС. На моем компютере работает, а на другом нет.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function MakeLangId(PrimLang, SubLang : word) : word;
begin
  result:= (SubLang shl 10) or PrimLang;
end;
 
 
...
    if not Windows.TerminateProcess(ADisp[i].Handle, 0) then
      begin
        errorCode := GetLastError();
        FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_ALLOCATE_BUFFER,
                      nil, errorCode,
                      MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), // Default language
                      @lpMsgBuf, 0, nil);
        DCErrorStr := DCErrorStr +  lpMsgBuf + '; ';//конечная строка для вывода
        ADisp[i].ErrCode := errorCode;
      end;
...

На другом компе кроме ОС Windows ничего не установлено (из сред разработки). У меня стоят: delphi5, VS .net 2003, VS2010.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.04.2011, 13:17
Ответы с готовыми решениями:

FormatMessage - иероглифы
if ((dwRetVal = AddIPAddress(iaIPAddress,iaIPMask,ifIndex,&NTEContext, &NTEInstance)) == NO_ERROR) { printf("\tIPv4 address %s was...

FormatMessage работает некорректно
Всем доброго времени суток. Мне необходимо отформатировать строку, используя Windows CE FormatMessage. Для теста использую следующий...

Formatmessage
unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,...

1
306 / 187 / 26
Регистрация: 14.02.2010
Сообщений: 547
05.04.2011, 17:52
Попробуйте в идентификаторе языка передавать 0 - тогда описание ошибки будет искаться не только в указанном языке, а во всех, начиная все равно с Default. Кроме того, можно проверить что вернет сама FormatMessage. Плюс не забывайте освобождать буфер, выделенный системой для этой функции (т.к. у Вас флажок ALLOCATE_BUFFER) вызовом LocalFree.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.04.2011, 17:52
Помогаю со студенческими работами здесь

Альтернатива функции FormatMessage - Получить текст системного сообщения
Приветствую! Необходимо получить текст системного сообщения по коду. Как известно, для этого существует FormatMessage(). Однако ею не...

CreateProcess - что есть что. А также FormatMessage
Что здесь для чего? Кстати,не удаётся создать процесс,хотя имя правильно указано. #include "stdafx.h" #include...

Приложение работает в Debug, странно работает в Release и не работает при билде
Действия выполняются на эмуляторе Pixel 2. Android 9.0. Если я запускаю приложение с конфигурацией Debug, то всё в порядке. При запуске же...

Мышь работает через раз, то есть запустил ОС - мышь не работает, перезагрузил - мышь работает
Установлена Windows 7 со всеми последними обновлениями. Все всегда замечательно работало. Но с недавних пор мышь стала работать через раз....

Не работает монитор комп работает а на мониторе нет изображения что делать ?
У меня компьютер старый давно покупал и мне захотелось проверить включается или нет и тут возникла одна проблема не включается монитор (...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru