С порталом электронных счётов-фактур в Беларуси знаком каждый бухгалтер. Его первичная настройка у неопытных пользователей зачастую вызывает массу проблем. Так, после установки Авеста и импорта в него действующего сертификата большинству удается попасть на портал.

Главное окно портала ЭСЧФ
Но при отправке заполненной формы в правом нижнем углу экрана может отобразиться сообщение на красном фоне, в котором написано “Ошибки при отправке формы. Внутренняя ошибка библиотеки.” Отправка при этом естественно не осуществляется.
В данной статье мы расскажем как самостоятельно можно попробовать устранить данную ошибку.
- Добавление сайта vat. gov. by в список безопасных
- При отправке формы появляется внутренняя ошибка библиотеки в ЭСЧФ
- ЮКОЛА-ИНФО
- Типовые проблемы, которые возникают у пользователей Портала по причине некорректно настроенного рабочего места
- Инструкция по настройке рабочего места для работы с порталом электронных счетов-фактур
- Инициализация библиотеки COM
- Отмена инициализации библиотеки COM
- Портал ФСЗН (portal. ssf. gov. by)
- Работа с библиотеками динамической компоновки (DLL)
- Использование DLL
- Библиотеки импортирования
- Согласование интерфейсов
- Загрузка неявно подключаемой DLL
- Динамическая загрузка и выгрузка DLL
- Загрузка обычной DLL
- Загрузка MFC-расширений динамических библиотек
- Ресурсы DLL
- Пример обычной DLL и способов загрузки
Добавление сайта vat. gov. by в список безопасных
Вся суть проблемы заключается в том, что сайт портала vat.gov.by не добавлен в список доверенных сайтов браузера Internet Explorer. И добавить его туда нужно в определенном виде, а именно *.vat.gov.by. И вот как это нужно сделать:

Вход в настройки Internet Explorer

Открываем список надежных сайтов
Ошибка при добавлении
Если появляется ошибка “Адреса сайтов, добавленных в эту зону, должны иметь префикс, подтверждающий безопасное соединение (https//)”, то нужно убрать галочку снизу “Для всех сайтов этой зоны требуется проверка серверов (https//)” и попробовать снова.

Добавляем сайт *.vat.gov.by, сняв галочку снизу
После всех проделанных действий закрываем окно “надежные сайты” и перезапускаем Internet Explorer, снова заходим на портал и пробуем. Внутренней ошибки библиотеки при отправке больше быть не должно.

Что делать, если при отправке формы ЭСЧФ появляется внутренняя ошибка библиотеки?
При отправке формы появляется внутренняя ошибка библиотеки в ЭСЧФС порталом электронных счётов-фактур в Беларуси знаком каждый бухгалтер. Его первичная настройка у неопытных пользователей зачастую вызывает массу проблем. Так, после установки Авеста и импорта в него действующего сертификата большинству удается попасть на портал. Главное окно портала ЭСЧФНо при отправке заполненной формы в правом нижнем углу экрана может отобразиться сообщение на красном фоне, в котором написано “Ошибки при отправке формы. Внутренняя ошибка библиотеки.” Отправка при этом естественно не осуществляется. В данной статье мы расскажем как самостоятельно можно попробовать устранить данную ошибку. Добавление сайта vat.gov.by в список безопасныхВся суть проблемы заключается в том, что сайт портала vat.gov.by не добавлен в список доверенных сайтов браузера Internet Explorer. И добавить его туда нужно в определенном виде, а именно *.vat.gov.by. И вот как это нужно сделать:Открываем Internet Explorer и заходим в его настройки, нажав значок шестеренки в правом верхнем углу экрана и в открывшемся меню выбрав “Свойства браузера”. Вход в настройки Internet ExplorerВ открывшемся окне переходим на вкладку “Безопасность”, выделяем кликом мышкой значок “Надежные сайты” и жмем кнопку “Сайты”. Открываем список надежных сайтовВо вновь открывшемся окне в поле “Добавить в зону следующий узел” вводим дословно *.vat.gov.by (можно скопировать) и нажимаем кнопку “Добавить”. Ошибка при добавленииЕсли появляется ошибка “Адреса сайтов, добавленных в эту зону, должны иметь префикс, подтверждающий безопасное соединение (https//)”, то нужно убрать галочку снизу “Для всех сайтов этой зоны требуется проверка серверов (https//)” и попробовать снова. Добавляем сайт *.vat.gov.by, сняв галочку снизуПосле всех проделанных действий закрываем окно “надежные сайты” и перезапускаем Internet Explorer, снова заходим на портал и пробуем. Внутренней ошибки библиотеки при отправке больше быть не должно. Лучшая благодарность автору — репост к себе на страничку:
При отправке формы появляется внутренняя ошибка библиотеки в ЭСЧФ




Лучшая благодарность автору — репост к себе на страничку:
Для того, чтобы
помочь вам, нужно собрать некоторую дополнительную информацию.
Пожалуйста, ответьте
наиболее подробно на следующие вопросы:
1. Версия ОС, разрядность.
Приложите, пожалуйста, к письму скриншот свойств системы.
2. Версия Internet
Explorer.
3. Версии всех
установленных криптопровайдеров ЗАО «АВЕСТ» и их полные названия. Лучше всего смотреть в Панели управления в списке установленных программ.
4. Какой сертификат
используете для сервиса (РУП ИИЦ или РУП НЦЭУ=Гос СУОК)?
5. Откройте соответствующий
сертификату персональный
менеджер, пройдите авторизацию, убедитесь, что сертификат действующий и СОС не истекли, желательно сопроводить ответ на этот вопрос скриншотом окна свойств сертификата.
6. Откройте свойства
браузера/обозревателя на вкладке безопасность выберете надежные сайты/узлы, после нажмите кнопку сайты/узлы, пришлите скриншот содержимого.
7. Установлен ли
у Вас антивирус, если да, то какой (название и версия).
Проект работает на «Битрикс: Управление сайтом»
ЮКОЛА-ИНФО
Электронный счет-фактура является обязательным электронным документом для всех плательщиков налога на добавленную стоимость, указанных в абзацах втором – четвертом статьи 90 Налогового кодекса Республики Беларусь (за исключением иностранных организаций, не состоящих на учете в налоговых органах Республики Беларусь), у которых возникает объект налогообложения налогом на добавленную стоимость, включая обязанность исчисления налога на добавленную стоимость в соответствии с положениями статьи 92 Налогового кодекса Республики Беларусь.
Правовые основы обращения с 1 июля 2016 года на территории Республики Беларусь электронных счетов-фактур будут регламентироваться положениями статьи 106-1 Налогового кодекса Республики Беларусь (далее — Кодекс), которая вступит в силу также с 01.07.2016.
В этой связи необходимо определить, кто и в каких случаях составляет и направляет электронные счета-фактуры.
Так, электронный счет-фактура является обязательным электронным документом для всех плательщиков налога на добавленную стоимость, указанных в абзацах втором – четвертом статьи 90 Кодекса (за исключением иностранных организаций, не состоящих на учете в налоговых органах Республики Беларусь), у которых возникает объект налогообложения налогом на добавленную стоимость, включая обязанность исчисления налога на добавленную стоимость в соответствии с положениями статьи 92 Кодекса.
Указанное означает, что электронный счет-фактура должен быть составлен плательщиком:
Статья 1061. Электронный счет-фактура.
Типовые проблемы, которые возникают у пользователей Портала по причине некорректно настроенного рабочего места
Служба технической поддержки проанализировав обращения пользователей, обращает внимание на типовые выявленные проблемы с работой на портале по причине некорректно настроенного рабочего места:
2. При создании и редактировании ЭСЧФ на Портале автоматически не присваивается номер, некорректно отображаются реквизиты поставщика/получателя, а также данные по товарам (работам, услугам), имущественным правам;
3. При открытии разделов портала («В работе», «Входящие», «Отправленные» и т.д.) в списке не отображаются ЭСЧФ;
4. При попытке подписать и отправить ЭСЧФ возникает любая из ниже приведённых ошибок:
ВНИМАНИЕ! При возникновении любой из вышеперечисленных ошибок необходимо в обязательном порядке выполнить настройку рабочего места в соответствии с требованиями приведенной инструкции.
Инструкция по настройке рабочего места для работы с порталом электронных счетов-фактур
Для работы с порталом подачи электронных счетов-фактур Вам необходимо:
1. Убедиться, что Ваша операционная система не является любительской «сборкой».
Откройте просмотр свойств системы: Правой клавишей по ярлыку Компьютер (Мой компьютер) — Свойства.
Посмотрите на то, как выглядят свойства операционной системы:
Год сборки должен соответствовать реальному году выхода операционной системы, например:
Не должно быть никаких посторонних картинок, кроме логотипа Windows (на предустановленных системах от известных производителей компьютеров также могут присутствовать логотипы производителей и/или информация об активации).
Распространённые сборки, с которыми могут возникать проблемы: ZverCD, ZverDVD, PiterPen, Goletsa и.т.п.
Работа криптографических компонентов на таких рода сборках не гарантируется.
2. Установить актуальные программные средства криптографической защиты информации «Авест» (программный комплекс «Комплект Абонента АВЕСТ»).
В комплект абонента входит:
- Персональный менеджер сертификатов 3.7.0;
- Плагин AvCMXWebP 1.1.5;
ВНИМАНИЕ! Если данное криптографическое ПО не установлено на ПК пользователя, то работа всего функционала портала и веб-сервиса не гарантируется!
3. Убедитесь, что вы используете версию браузера Internet Explorer 8, 10 или 11.
Запустите Internet Explorer, выберите значок с изображением шестерёнки (в разных версиях может быть знак «?» или меню «Справка») — «О программе».
Версия браузера Internet Explorer должна быть 8, 10 или 11.
Инструкции по настройке браузера — «Настройка браузера Internet Explorer».
ВНИМАНИЕ! Если настройка не произведена в полном соответствии с инструкцией, то работа всего функционала портала не гарантируется!
4. Убедитесь, что ваш сертификат действителен.
Откройте соответствующий сертификату персональный менеджер, пройдите авторизацию, убедитесь, что сертификат действующий и СОС не истекли.
Инструкции по установке сертификата здесь
— «Как установить сертификат для РУП ИИЦ и/или обновить для него ПО», «Как установить сертификат для РУЦ ГосСУОК и/или обновить для него ПО»
Истёк СОС. Воспользуйтесь кнопкой автоматического обновления актуальных Списков отозванных сертификатов.
5. Убедитесь, что антивирусное ПО не блокирует доступ к порталу.
Для этого необходимо отключать антивирусное ПО на время работы с порталом. В некоторых антивирусах (например, ESET NOD 32) необходимо дополнительно отключение фильтрации протоколов TLS и SSL.
6. Для серверных операционных систем требуется дополнительная настройка.
Текст ошибки в 1С/на портале #1:
Описание и решение:
Истек срок действия сертификата поставщика. Необходимо обновить сертификаты.
Текст ошибки в 1С/на портале #2
Ошибка подключения: Ошибка HTTP
Socket Error # 10061
Антивирусная система блокирует доступ. Отключите антивирус. Или удалите антивирус и установите другую версию.
Текст ошибки в 1С/на портале #3:
Socket Error # 10060
Для пакетной выгрузки не доступен портал vat.gov.by. Попробуйте позже. Или некорректно выполнены настройки Internet Explorer. Настроить рабочее место по инструкции:
Текст ошибки в 1С/на портале #4:
Socket Error # 10054
Connection reset by peer.
Ошибка vat.gov.by. Портал перегружен. Попробуйте выгрузить ЭСЧФ еще раз или позже.
Текст ошибки в 1С/на портале #5:
Socket Error # 0
Текст ошибки в 1С/на портале #6:
Ошибка подключения: Ошибка HTTP. S SPI QueryContextAttributes returns error: No credentials are available in the security package
Не открыты порты на стороне интернет провайдера или выбран неподходящий тип интернет подключения. Обратиться в тех.поддержку.
Текст ошибки в 1С/на портале #7:
Ошибка отправки документа invoice-nomer_eschf.sgn.xml: Ошибка HTTP Read timed out
Текст ошибки в 1С/на портале #8:
Ошибка подключения к сайту vat.gov.by
Текст ошибки в 1С/на портале #9:
Ошибка выгрузки XML: Документ не соответствует XSD схеме.
XSD схема устарела. Нужна доработка учетной программы(1С, SAP) и/или замена *.xsd.
Текст ошибки в 1С/на портале #10:
Ошибка получения электронной подписи.
Программа не видит AvToken. U SB порт перестал работать. AvToken перестал работать. AvToken не вставлен в порт.
Текст ошибки в 1С/на портале #11:
Ошибка при попытке подключения к TLS-серверу
1 вариант) Скорее всего vat.gov.by «не видит личный сертификат» — проверьте действительно ли он присутствует в Персональном менеджере сертификатов. Ещё может быть: для пакетной выгрузки не доступен портал vat.gov.by. Попробуйте позже.
2 вариант) Некорректно выполнены настройки Internet Explorer. Настроить рабочее место по инструкции: . По этой же причиние, будет ошибка и в личном кабинете Плательщика (ИМНС): Не верный протокол безопасности: пожалуйста, проверьте версии используемых протоколов SSL и TLS (необходимы SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2). Там достаточно разрешить запуск ps.js и перезапустить IE.
Текст ошибки в 1С/на портале #12:
Ошибка подключения: Ошибка HTTP. java.lang. NullPointerException или Внутренняя ошибка библиотеки
Текст ошибки в 1С/на портале# 13:
Или запустить bat-файл: «C:Program Files (x86)AvestAvPCM_ncesget_crl.bat»
Текст ошибки в 1С/на портале #14:
Ошибка подключения. Нет доверия к сертификату.
Текст ошибки в 1С/на портале #15:
Невозможность подключиться к защищенному сайту
Не удается безопасно подключиться к этой странице
Возможно, на сайте используются устаревшие или ненадежные параметры безопасности протокола TLS. Если это будет повторяться, обратитесь к владельцу веб-сайта.
Для параметров безопасности протокола TLS не установлены значения по умолчанию, что также могло стать причиной ошибки.
Попробуйте выполнить следующие действия.
Вернуться к последней странице
Сортировка по частоте выявления:
2) Скачиваем и устанавливаем последнюю версию Авеста (см.актуальную внизу страницы). Перезагружаем ПК. Проверяем вход на портал.
3) Если у Вас Windows 10 — то возможно поможет установка/переустановка E11.
Если у Вас официальная, лицензионная Windows 10, то поможет отключение протокола безопасной загрузки Secure Boot — отключается в UEFI (BIOS). Для каждой конкрентой модели компьютера см. инструкцию в интернете.
5) Проблемы с реестром Windows: см. ошибку 37
Текст ошибки в 1С/на портале #16:
Ошибка «Идет загрузка подождите пожалуйста»
1) Обновить сертификат. Актуальные версии доступны на http://www.portal.nalog.gov.by/kno/downloads.html
2) В настройках браузера — безопасность — безопасные сайты был указан http://vat.gov.by. А нужно прописывать именно так: *vat.gov.by
Текст ошибки в 1С/на портале #17:
Ошибка при отправке формы. Внутренняя ошибка библиотеки
Текст ошибки в 1С/на портале #18:
Не обновляется СОС
Запустить Edeclaration, выбрать ФАЙЛ-ПОЛУЧЕНИЕ СОС, после этого повторить действия с обновлением СОС на портале или по ярлыку с вашего рабочего стола «Обновить СОС»
Текст ошибки в 1С/на портале #19:
Не открывается страница портала vat.gov.by (белый экран)
Сбросить настройки Internet Explorer, использовать браузер 32-битной версии.
Текст ошибки в 1С/на портале #20:
На носителе не наден контейнер с личным ключем
Текст ошибки в 1С/на портале #21:
В настройках браузера — безопасность — безопасные сайты был указан http://vat.gov.by. А необходимо прописывать именно так: *.vat.gov.by
Перед звездочкой нужно ставить точку, тк без нее не работает!
Текст ошибки в 1С/на портале #22:
При импорте СОС на списке «Республиканский удостоверяющий центр ГосСУОК: Ошибка импорта: внутренняя ошибка»
Текст ошибки в 1С/на портале #23:
Не удалось получить данные, проверьте подключение к Интернет
Настроить рабочее место по инструкции: . Проверить настройки Брандмауэра и антивирусной программы. Для тестирования — временно их отключить
Текст ошибки в 1С/на портале #24:
win32 api 0x80090008 при входе в личный кабинет плательщика МНС
Текст ошибки в 1С/на портале #25:
При замене сертификата на портале при регистрации пользователя, получаем ошибку «По УНП и личному номеру пользователя найдено ноль или больше одной записи»
Нужно снять галку «Замена сертификата». После этого нажать «Заменить сертификат» и обратиться в службу поддержки портала.
Текст ошибки в 1С/на портале #26:
portal.nalog.gov.by Ошибка! Подпись не прошла проверку!
Скорее всего в поле «Выберите основной сертификат: Из личного справочника» выбран не действительный сертификат или сертификат банка или сертификат другого юр.лица.
Текст ошибки в 1С/на портале #27:
При сохранении произошла непредвиденная ошибка
Текст ошибки в 1С/на портале #28:
В браузере Internet Explorer 8: Возникла проблема с сертификатом безопасности этого веб-сайта. Сертификат безопасности этого веб-сайта не был выпущен доверенным центром сертификации.
Сертификат КУЦ не внесен в список доверия, делается это в менеджере сертификатов. Заходите с авторизацией, далее в сетевой справочник, далее правой кнопкой по корневому и выбрать «установить доверие». Если работаете в серверной Windows — потребуется запуск с правами Администратор.
Текст ошибки в 1С/на портале #29:
При попытке обновить СОС кнопкой на портале (две-три строки выделены красным):
РУП Информационно-издательский центр по налогам и сборам: Импорт произведен успешно
МНС РБ. Корневой удостоверяющий центр: Ошибка импорта: Сертификат издателя СОС не найден.
МНС РБ. Рабочий удостоверяющий центр ЭС НДС: Ошибка импорта: Сертификат издателя СОС не найден.
Корневой удостоверяющий центр ГосСУОК: Импорт произведен успешно
Республиканский удостоверяющий центр ГосСУОК: Импорт произведен успешно
Текст ошибки в 1С/на портале #30:

Ошибка: Выбранный сертификат не зарегистрирован в системе удостоверяющим центром
Скорее всего была либо замена сертификата, либо по какой-то причине нужно пройти регистрацию на портале. Открываем vat.gov.by. Нажимаем кнопку «Начать работу» — «Регистрация» — «Регистрация пользователя» – Раздел «Данные из сертификата открытого ключа» должны заполниться автоматически из Вашего личного сертификата. Выбрать роль администратора и при необходимости установить признак «Замена сертификата».
Текст ошибки в 1С/на портале #31:
42 внутренняя ошибка библиотеки личный кабинет
Текст ошибки в 1С/на портале #32:
Эта настройка позволяет управлять разрешением загрузки файлов из выбранной вами зоны. Этот параметр определяется зоной, в которой находится страница со ссылкой, вызывающей загрузку, а не той, из которой доставляется загружаемый файл. Если текущая настройка включена, то загрузка файлов из этой зоны разрешена. Параметр, отвечающий за данную опцию следующий:
;0 — включить
;3 — отключить
После выполненных настроек вручную, необходимо перезапустить Internet Explorer.
Выставить 0 в 3-й и 4-й зоне.
Текст ошибки в 1С/на портале #33:
Текст ошибки в 1С/на портале #34:
Ошибка при входе в личный кабинет ИМНС: Возникла непредвиденная системная ошибка.
Unable to process template ThemeMNS_SERVLET_CONTEXT_/templates/portal_normal.ftl
Метод устранения не определен. Скорее всего, что ошибка на стороне сервера.
Текст ошибки в 1С/на портале #35:
Не удалось проверить ЭЦП квитанции: СОС издателя не найден
2) Если ошибку получили на серверной ОС: временно дать доступ админинстратора/локального администратора
Текст ошибки в 1С/на портале #36:
Наличие ошибок в сертификате безопасности может указывать на попытку обмана или перехвата данных, которые вы отправляете на сервер.
Мы рекомендуем вам закрыть эту веб-страницу
Хотя все сертификаты в персональном менеджере присутствуют.
Эту же ошибку может отдавать и сам сервер при пакетной выгрузке ЭСЧФ. Но трактуется она иначе:
Вам необходимо установить актуальную версию криптопровайдеров Авест.
Пункт 2. Установите актуальные программные средства криптографической защиты информации «Авест» (программный комплекс «Комплект абонента АВЕСТ»).
АРХИВ для абонентов РУП «Национальный центр электронных услуг»
Извлеките данные из архива и зайдите в получившуюся папку, запустите от имени администратора(правой кнопкой по значку — Запуск от имени администратора) файл AvPKISetup2 и проведите установку. При необходимости перезапустите компьютер.
Также напоминаем, что на момент работы с порталом и веб-сервисом необходимо отключать антивирусное ПО. Для ESET NOD необходимо:
На панели задач щелкнуть по значку антивируса, чтобы его открыть.
В открывшемся окне выбрать или нажать F5 на клавиатуре. Далее открыть раздел Интернет и электронная почта”. Отключить параметр Фильтрация содержимого, передаваемого по протоколам приложений
Текст ошибки в 1С/на портале #37:
При проверке сертификата в свойствах браузера Internet Explorer (содержание — сертификаты): При проверке отношений доверия произошла системная ошибка.
1 вариант) Исправление ошибок реестра или проверка целостности системных файлов или переустановка операционной системы.
2 вариант) Еще может быть у Вас очень старый носитель AvPass/AvBign и требует замены (нормат.срок службы 10 лет). Как ни странно, в одном случае пришлось менять USB ключ и перевыпускать сертификат. Попробуйте позвонить в тех.поддержку Авест — там по серийному номеру Вам подскажут рабочий ли он у Вас.
Текст ошибки в 1С/на портале #38:
Не верен пароль при вводе в персональном менеджере
Если Вы на 100% уверены в правильности ввода пароля (Caps lock выключен, пробовали ввод на других ПК), то скорее всего ключ не читабелен и требует замены (проблема та же что и в
Текст ошибки в 1С/на портале #39:
Для компьютера этот сертификат безопасности веб-сайта является ненадежным.
Код ошибки: DLG_FLAGS_INVALID_CA
Not recommended iconПерейти на веб-страницу (не рекомендуется)
Текст ошибки в 1С/на портале #40:
Не выгружает счет-фактуры из 1С
Текст ошибки в 1С/на портале #41:
Internet Explorer запускается
В конце февраля 2023г. перестал запускаться Internet Explorer. Вместо него стартует Microsoft Edge. Это связано с применением последних правил в политике Майкрософт. Просто изменить настройки по умолчанию невозможно. В сети есть несколько способов решения данной проблемы: они связаны с внесением данных в реестр Windows.
Однако самый простой — это запуск Internet Explorer через файл сценария . Скачиваете файл . Распаковываете его в любое место и стартуете! Запускается старый, добрый IE!
Еще один простой способ — если не хотите запускать IE через скрипт, C:Program Files (x86)MicrosoftEdge
С порталом электронных счётов-фактур в Беларуси знаком каждый бухгалтер. Его первичная настройка у неопытных пользователей зачастую вызывает массу проблем. Так, после установки Авеста и импорта в него действующего сертификата большинству удается попасть на портал.
Но при отправке заполненной формы в правом нижнем углу экрана может отобразиться сообщение на красном фоне, в котором написано “Ошибки при отправке формы. Внутренняя ошибка библиотеки.” Отправка при этом естественно не осуществляется.
Вся суть проблемы заключается в том, что сайт портала vat.gov.by не добавлен в список доверенных сайтов браузера Internet Explorer. И добавить его туда нужно в определенном виде, а именно *.vat.gov.by. И вот как это нужно сделать:
Инициализация библиотеки COM
любая программа Windows, использующая COM, должна инициализировать библиотеку com, вызвав функцию CoInitializeEx . Каждый поток, использующий интерфейс COM, должен выполнять отдельный вызов этой функции. CoInitializeEx имеет следующую сигнатуру:
Первый параметр зарезервирован и должен иметь значение NULL. Второй параметр указывает потоковую модель, которую будет использовать программа. Модель COM поддерживает две различные модели потоков, потоковое и многопоточное . При указании потоков подразделений выполняются следующие гарантии.
Если какое-либо из этих ограничений не равно true, используйте многопоточность модели. Чтобы указать потоковую модель, установите один из следующих флагов в параметре двкоинит .
Необходимо задать только один из этих флагов. Как правило, поток, создающий окно, должен использовать флаг коinit _ апартментсреадед , а другие потоки должны использовать _ многопотоковую инициализацию. Однако для некоторых COM-компонентов требуется конкретная потоковая модель. В документации MSDN следует сообщить, когда это так.
На самом деле, даже при указании потоков подразделений все равно можно совместно использовать интерфейсы между потоками, используя метод, именуемый упаковкой. Упаковка выходит за рамки этого модуля. Важно отметить, что при работе с потоковыми апартаментами никогда не нужно просто копировать указатель интерфейса в другой поток. Дополнительные сведения о потоковых моделях COM см. в разделе процессы, потоки и подразделения.
В дополнение к уже упомянутым флагам рекомендуется установить флаг _ _ OLE1DDE Disabled в параметре двкоинит . Установка этого флага позволяет избежать некоторых издержек, связанных с связыванием и внедрением объектов (OLE) 1,0, устаревшей технологией.
Вот как можно инициализировать COM для потоков подразделений:
Возвращаемый тип HRESULT содержит код ошибки или успешного выполнения. В следующем разделе мы рассмотрим обработку ошибок COM.
Отмена инициализации библиотеки COM
Для каждого успешного вызова CoInitializeExнеобходимо вызвать CoUninitialize перед выходом из потока. Эта функция не принимает параметров и не имеет возвращаемого значения.
Портал ФСЗН (portal. ssf. gov. by)

16 лет на сайте пользователь #36931
12 лет на сайте пользователь #162876
переставь авест и эксплорер, у них часто бывают проблемы с сертификатами так же
п.с. попробуй параметры безопасности браузера выставить на минимум
18 лет на сайте пользователь #7387
что то похожее было с Авестом (правда для другой задачи). Смысл в том, что через эксплорер не запускалось приложение из-за того, что в экслорере стойкость шифра была 256-разр. После удаления файла tls (пустого) в папочке c:Program FilesCommon FilesAvestAvest CSP стойкость шифра падала до 128-разр и всё заработало. Попробуйте, а вдруг поможет. Посмотреть стойкость шифра в експлорере — справка — о программе. А если файлика tls нет — попробуйте создать его.
Не помогает. Уже и IE 8 поставил, все равно эта ошибка.
11 лет на сайте пользователь #319151
попробуйте может:сервис — св-ва обозревателя — безопасность — уровень безопасности сбросить на низкий и установить флажок на выполнять сценарии выполнения активх
Работа с библиотеками динамической компоновки (DLL)
С самого рождения (или чуть позже) операционная система Windows использовала библиотеки динамической компоновки DLL (Dynamic Link Library), в которых содержались реализации наиболее часто применяемых функций. Наследники Windows — NT и Windows 95, а также OS/2 — тоже зависят от библиотек DLL в плане обеспечения значительной части их функциональных возможностей.
Рассмотрим ряд аспектов создания и использования библиотек DLL:
Использование DLL
Практически невозможно создать приложение Windows, в котором не использовались бы библиотеки DLL. В DLL содержатся все функции Win32 API и несчетное количество других функций операционных систем Win32.
Вообще говоря, DLL — это просто наборы функций, собранные в библиотеки. Однако, в отличие от своих статических родственников (файлов . lib), библиотеки DLL не присоединены непосредственно к выполняемым файлам с помощью редактора связей. В выполняемый файл занесена только информация об их местонахождении. В момент выполнения программы загружается вся библиотека целиком. Благодаря этому разные процессы могут пользоваться совместно одними и теми же библиотеками, находящимися в памяти. Такой подход позволяет сократить объем памяти, необходимый для нескольких приложений, использующих много общих библиотек, а также контролировать размеры ЕХЕ-файлов.
Однако, если библиотека используется только одним приложением, лучше сделать ее обычной, статической. Конечно, если входящие в ее состав функции будут использоваться только в одной программе, можно просто вставить в нее соответствующий файл с исходным текстом.
Чаще всего проект подключается к DLL статически, или неявно, на этапе компоновки. Загрузкой DLL при выполнении программы управляет операционная система. Однако, DLL можно загрузить и явно, или динамически, в ходе работы приложения.
Библиотеки импортирования
При статическом подключении DLL имя .lib-файла определяется среди прочих параметров редактора связей в командной строке или на вкладке «Link» диалогового окна «Project Settings» среды Developer Studio. Однако .lib-файл, используемый при неявном подключении DLL, — это не обычная статическая библиотека. Такие .lib-файлы называются библиотеками импортирования (import libraries). В них содержится не сам код библиотеки, а только ссылки на все функции, экспортируемые из файла DLL, в котором все и хранится. В результате библиотеки импортирования, как правило, имеют меньший размер, чем DLL-файлы. К способам их создания вернемся позднее. А сейчас рассмотрим другие вопросы, касающиеся неявного подключения динамических библиотек.
Согласование интерфейсов
При использовании собственных библиотек или библиотек независимых разработчиков придется обратить внимание на согласование вызова функции с ее прототипом.
Если бы мир был совершенен, то программистам не пришлось бы беспокоиться о согласовании интерфейсов функций при подключении библиотек — все они были бы одинаковыми. Однако мир далек от совершенства, и многие большие программы написаны с помощью различных библиотек без C++.
По умолчанию в Visual C++ интерфейсы функций согласуются по правилам C++. Это значит, что параметры заносятся в стек справа налево, вызывающая программа отвечает за их удаление из стека при выходе из функции и расширении ее имени. Расширение имен (name mangling) позволяет редактору связей различать перегруженные функции, т.е. функции с одинаковыми именами, но разными списками аргументов. Однако в старой библиотеке С функции с расширенными именами отсутствуют.
Хотя все остальные правила вызова функции в С идентичны правилам вызова функции в C++, в библиотеках С имена функций не расширяются. К ним только добавляется впереди символ подчеркивания (_).
Если необходимо подключить библиотеку на С к приложению на C++, все функции из этой библиотеки придется объявить как внешние в формате С:
Объявления функций библиотеки обычно помещаются в файле заголовка этой библиотеки, хотя заголовки большинства библиотек С не рассчитаны на применение в проектах на C++. В этом случае необходимо создать копию файла заголовка и включить в нее модификатор extern «C» к объявлению всех используемых функций библиотеки. Модификатор extern «C» можно применить и к целому блоку, к которому с помощью директивы #tinclude подключен файл старого заголовка С. Таким образом, вместо модификации каждой функции в отдельности можно обойтись всего тремя строками:
В программах для старых версий Windows использовались также соглашения о вызове функций языка PASCAL для функций Windows API. В новых программах следует использовать модификатор winapi, преобразуемый в _stdcall. Хотя это и не стандартный интерфейс функций С или C++, но именно он используется для обращений к функциям Windows API. Однако обычно все это уже учтено в стандартных заголовках Windows.
Загрузка неявно подключаемой DLL
При запуске приложение пытается найти все файлы DLL, неявно подключенные к приложению, и поместить их в область оперативной памяти, занимаемую данным процессом. Поиск файлов DLL операционной системой осуществляется в следующей последовательности.
Если библиотека DLL не обнаружена, приложение выводит диалоговое окно с сообщением о ее отсутствии и путях, по которым осуществлялся поиск. Затем процесс отключается.
Если нужная библиотека найдена, она помещается в оперативную память процесса, где и остается до его окончания. Теперь приложение может обращаться к функциям, содержащимся в DLL.
Динамическая загрузка и выгрузка DLL
Вместо того, чтобы Windows выполняла динамическое связывание с DLL при первой загрузке приложения в оперативную память, можно связать программу с модулем библиотеки во время выполнения программы (при таком способе в процессе создания приложения не нужно использовать библиотеку импорта). В частности, можно определить, какая из библиотек DLL доступна пользователю, или разрешить пользователю выбрать, какая из библиотек будет загружаться. Таким образом можно использовать разные DLL, в которых реализованы одни и те же функции, выполняющие различные действия. Например, приложение, предназначенное для независимой передачи данных, сможет в ходе выполнения принять решение, загружать ли DLL для протокола TCP/IP или для другого протокола.
Загрузка обычной DLL
Первое, что необходимо сделать при динамической загрузке DLL, — это поместить модуль библиотеки в память процесса. Данная операция выполняется с помощью функции ::LoadLibrary, имеющей единственный аргумент — имя загружаемого модуля. Соответствующий фрагмент программы должен выглядеть так:
Стандартным расширением файла библиотеки Windows считает .dll, если не указать другое расширение. Если в имени файла указан и путь, то только он будет использоваться для поиска файла. В противном случае Windows будет искать файл по той же схеме, что и в случае неявно подключенных DLL, начиная с каталога, из которого загружается exe-файл, и продолжая в соответствии со значением PATH.
Когда Windows обнаружит файл, его полный путь будет сравнен с путем библиотек DLL, уже загруженных данным процессом. Если обнаружится тождество, вместо загрузки копии приложения возвращается дескриптор уже подключенной библиотеки.
Если файл обнаружен и библиотека успешно загрузилась, функция ::LoadLibrary возвращает ее дескриптор, который используется для доступа к функциям библиотеки.
Перед тем, как использовать функции библиотеки, необходимо получить их адрес. Для этого сначала следует воспользоваться директивой typedef для определения типа указателя на функцию и определить переменную этого нового типа, например:
Затем следует получить дескриптор библиотеки, при помощи которого и определить адреса функций, например адрес функции с именем MyFunction:
Адрес функции определяется при помощи функции ::GetProcAddress, ей следует передать имя библиотеки и имя функции. Последнее должно передаваться в том виде, в котором экспортируется из DLL.
Можно также сослаться на функцию по порядковому номеру, по которому она экспортируется (при этом для создания библиотеки должен использоваться def-файл, об этом будет рассказано далее):
После завершения работы с библиотекой динамической компоновки, ее можно выгрузить из памяти процесса с помощью функции ::FreeLibrary:
Загрузка MFC-расширений динамических библиотек
При загрузке MFC-расширений для DLL (подробно о которых рассказывается далее) вместо функций LoadLibraryи FreeLibrary используются функции AfxLoadLibrary и AfxFreeLibrary. Последние почти идентичны функциям Win32 API. Они лишь гарантируют дополнительно, что структуры MFC, инициализированные расширением DLL, не были запорчены другими потоками.
Ресурсы DLL
Динамическая загрузка применима и к ресурсам DLL, используемым MFC для загрузки стандартных ресурсов приложения. Для этого сначала необходимо вызвать функцию LoadLibrary и разместить DLL в памяти. Затем с помощью функции AfxSetResourceHandle нужно подготовить окно программы к приему ресурсов из вновь загруженной библиотеки. В противном случае ресурсы будут загружаться из файлов, подключенных к выполняемому файлу процесса. Такой подход удобен, если нужно использовать различные наборы ресурсов, например для разных языков.
Замечание. С помощью функции LoadLibrary можно также загружать в память исполняемые файлы (не запускать их на выполнение!). Дескриптор выполняемого модуля может затем использоваться при обращении к функциям FindResource и LoadResource для поиска и загрузки ресурсов приложения. Выгружают модули из памяти также при помощи функции FreeLibrary.
Пример обычной DLL и способов загрузки
Приведем исходный код динамически подключаемой библиотеки, которая называется MyDLL и содержит одну функцию MyFunction, которая просто выводит сообщение.
Сначала в заголовочном файле определяется макроконтстанта EXPORT. Использование этого ключевого слова при определении некоторой функции динамически подключаемой библиотеке позволяет сообщить компоновщику, что эта функция доступна для использования другими программами, в результате чего он заносит ее в библиотеку импорта. Кроме этого, такая функция, точно так же, как и оконная процедура, должна определяться с помощью константы CALLBACK:
Файл библиотеки также несколько отличается от обычных файлов на языке C для Windows. В нем вместо функции WinMain имеется функция DllMain. Эта функция используется для выполнения инициализации, о чем будет рассказано позже. Для того, чтобы библиотека осталась после ее загрузки в памяти, и можно было вызывать ее функции, необходимо, чтобы ее возвращаемым значением было TRUE:
После трансляции и компоновки этих файлов появляется два файла — MyDLL.dll (сама динамически подключаемая библиотека) и MyDLL.lib (ее библиотека импорта).





