Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634

Как получить текст ошибки от внешней API-функци Err.LastDllError (12029)

19.02.2019, 09:09. Показов 3659. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Как получить текст ошибки от внешней API-функци Err.LastDllError (12029)
Error (Err.LastDllError) результата не дает
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.02.2019, 09:09
Ответы с готовыми решениями:

Как получить текст ошибки из отладчика?
Вопрос как в отловленную ошибку записать текст из отладчика? Более подробно: В БД если на сегодняшнюю дату приходится два значения,...

Как в хранимой процедуре получить текст ошибки?
Когда я писал хранимую процедуру в MSSQL 7.0 у меня возникла следующая проблема: после выполнения очередной инструкции T-SQL происходила...

Как можно смоделировать действия пользователя массово и получить текст ошибки
Редко при запросе с сайта с пмощью ajax другого сайта, который должен предоставить информацию с третьего сайта, происходит то, что инфа с 3...

5
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
19.02.2019, 09:31
Лучший ответ Сообщение было отмечено kreotodr как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Declare Function FormatMessage Lib "kernel32.dll" Alias "FormatMessageW" (ByVal dwFlags As Long, ByVal lpSource As Long, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As Long, ByVal nSize As Long, Arguments As Any) As Long
 
Public Function ErrMessageText(lCode As Long) As String
    Const FORMAT_MESSAGE_FROM_SYSTEM As Long = &H1000&
    Const FORMAT_MESSAGE_IGNORE_INSERTS As Long = &H200
    
    Dim sRtrnMsg   As String
    Dim lret        As Long
 
    sRtrnMsg = Space$(MAX_PATH)
    lret = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM Or FORMAT_MESSAGE_IGNORE_INSERTS, ByVal 0&, lCode, 0&, StrPtr(sRtrnMsg), MAX_PATH, 0&)
    If lret > 0 Then
        ErrMessageText = Left$(sRtrnMsg, lret)
        ErrMessageText = Replace$(ErrMessageText, vbCrLf, vbNullString)
    End If
End Function
2
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
19.02.2019, 13:24  [ТС]
Вы не в курсе, почему на ошибки 12007, 12029. не выдается текст ошибки?
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
19.02.2019, 16:37
InternetGetLastResponseInfo
1
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
19.02.2019, 16:52
Лучший ответ Сообщение было отмечено kreotodr как решение

Решение

Потому что ошибки 12000 - 12175 хранятся в отдельном модуле.
https://docs.microsoft.com/en-... 000-15999-

И его нужно подгружать, чтобы получить расшифровки для этих кодов, ну или юзать функцию, что написал Trick.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Declare Function FormatMessage Lib "kernel32.dll" Alias "FormatMessageW" (ByVal dwFlags As Long, ByVal lpSource As Long, ByVal dwMessageId As Long, ByVal dwLanguageId As Long, ByVal lpBuffer As Long, ByVal nSize As Long, Arguments As Any) As Long
Private Declare Function GetModuleHandle Lib "kernel32.dll" Alias "GetModuleHandleW" (ByVal lpModuleName As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryW" (ByVal lpFileName As Long) As Long
 
Const MAX_PATH = 260&
 
Public Function ErrMessageText(lCode As Long) As String
    Const FORMAT_MESSAGE_FROM_SYSTEM As Long = &H1000&
    Const FORMAT_MESSAGE_IGNORE_INSERTS As Long = &H200
    Const FORMAT_MESSAGE_FROM_HMODULE As Long = &H800&
    
    Dim sRtrnMsg   As String
    Dim lret       As Long
    Dim hLib       As Long
    
    sRtrnMsg = Space$(MAX_PATH)
    hLib = GetModuleHandle(StrPtr("wininet.dll"))
    If hLib = 0 Then
        hLib = LoadLibrary(StrPtr("wininet.dll"))
    End If
    lret = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM Or FORMAT_MESSAGE_FROM_HMODULE Or FORMAT_MESSAGE_IGNORE_INSERTS, ByVal hLib, lCode, 0&, StrPtr(sRtrnMsg), MAX_PATH, 0&)
    If lret > 0 Then
        ErrMessageText = Left$(sRtrnMsg, lret)
        ErrMessageText = Replace$(ErrMessageText, vbCrLf, vbNullString)
    End If
End Function
2
39 / 39 / 8
Регистрация: 15.08.2014
Сообщений: 634
21.02.2019, 08:25  [ТС]
Спасибо, действительно выдает текст
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.02.2019, 08:25
Помогаю со студенческими работами здесь

Как получить текст ошибки при обработке строк с множеством пробелов
читал мануал и там написано:"Если файл содержит только код PHP, предпочтительно опустить закрывающий тег в конце файла. Это помогает...

LiveJournal JavaScript API, или как запостить в ЖЖ с внешней страницы без PHP?
Ребята, извините, что пишу здесь, не смог определить подходящий раздел, если что, перенисите. Такая вот задача, которая мне никак не...

Steam API - как можно получить медиану цен через API?
Ребят, как можно получить медиану цен через API ? Интересует количество продаж за последний день. Инфу по предмету получаю таким...

Как передать в функцию внешней библиотеке текст в кодировке не Юникод?
Есть внешняя COM библиотека для анализа текста. В ней есть функция textBase do_smth(string text) //textBase - класс описанный внутри...

Как получить доступ из внешней сети с серым IP?
Мой провайдер (intertelecom wifi) не предоставляет постоянный IP, дает только серый. Можно ли при этом как то получить доступ к компьютеру...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru