Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

5 Страницы«<345
Опции
К последнему сообщению К первому непрочитанному
Offline Андрей *  
#41 Оставлено : 14 февраля 2024 г. 12:11:30(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Автор: MWB Dmitry Перейти к цитате
Автор: Андрей * Перейти к цитате
Думаю проблема в том, что запускаете не тот exe.


EXE не запу3скается вообще

WSH - работает внутри основного EXE



В 32 битном?
Соберите для 64х
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#42 Оставлено : 14 февраля 2024 г. 12:14:29(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Какая задача то? Почему не решается прямой работой из нативного кода?

Это для внутренних нужд такое только?
Техническую поддержку оказываем тут
Наша база знаний
Offline MWB Dmitry  
#43 Оставлено : 14 февраля 2024 г. 12:43:04(UTC)
MWB Dmitry

Статус: Активный участник

Группы: Участники
Зарегистрирован: 13.02.2024(UTC)
Сообщений: 73
Российская Федерация

Сказал(а) «Спасибо»: 2 раз
D2007 не умеет Win64.

Перенести в юникодную дельфи легаси-проект нельзя, я уже писал, сыпется в-с-ё. До меня дважды пробавали, я посмотрел что там за кошмарики внутри и даже пытаться пока не буду. А может и никогда.

> Почему не решается прямой работой из нативного кода?

Запретили... Я хз что там "вверху" за соображения. Возможно, их уже не помнят, но увы.

Общая "теория", что как 1С и МС Офис, программа делится на "ядро" и "конфигурацию", и все, что можно и нельзя, надо переносить в VBScript/JScript.



В любом случае, явно вскрылась какая-то принципиальная ошибка в CADESCOM, которая периодически приводит к шрёдинбагам.

Только как до неё добраться...

Я даже минимизированный тест-кейз с исходниками не могу сделать, хз сколько на это времени будет нужно.


> Это для внутренних нужд такое только?

не понял вопроса



придется пока костылить опять через WScript.exe :-/

Отредактировано пользователем 14 февраля 2024 г. 12:45:16(UTC)  | Причина: Не указана

Offline Андрей *  
#44 Оставлено : 14 февраля 2024 г. 13:35:51(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
Криптографию наружу в скрипты... Ясно, печально.


В то, что среда старая.. И нет 64х, понятно.
Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей *  
#45 Оставлено : 14 февраля 2024 г. 13:40:36(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,719
Мужчина
Российская Федерация

Сказал «Спасибо»: 500 раз
Поблагодарили: 2054 раз в 1594 постах
traceall_x64.zip (1kb) загружен 3 раз(а).
И через DBGVIEW посмотреть
Или все опции включены эти уже?
Техническую поддержку оказываем тут
Наша база знаний
Offline MWB Dmitry  
#46 Оставлено : 14 февраля 2024 г. 14:11:31(UTC)
MWB Dmitry

Статус: Активный участник

Группы: Участники
Зарегистрирован: 13.02.2024(UTC)
Сообщений: 73
Российская Федерация

Сказал(а) «Спасибо»: 2 раз
Ну я же писал - https://www.cryptopro.ru...&m=145574#post145574

Вот настройки:

regedit_ahU3wDJN4m.png (36kb) загружен 0 раз(а). regedit_uTjpw8PbPv.png (44kb) загружен 0 раз(а). regedit_mMiVpLyNu1.png (13kb) загружен 0 раз(а).

В момент ошибки ничего в DBGVIEW не падает - и НЕ МОЖЕТ.

До вашего кода ничего не дохожит. WSH/JSCRIPT получает VARIANT со ссылкой на какой-то ваш объект - IUnknown либо IDispatch - (или со ссылкой на другой VARIANT с котором ссылка на VARIANT в котором....) и пытается там найти метод Open в каком-то из интерфейсов.

Судя по https://cpdn.cryptopro.r.../class_certificates.html он там должен быть один, в котором есть метод Open

Но интерфейс не найден и движок Dispatch Automation падает ДО вызова вашего кода.

---

а в промежутке между кодом JScript и вашим - могут быть касты и к iUnknown и к iDispatch и к iEventSource и к чему угодно. И если вы там не свою обертку делаете, а берёте какой-то макройсофтовский готовый объект - то обратный каст уже не пройдёт, например. Я упоминал немецкую библиотеку, которая был так сломана...

Если бы я мог в нативном коде повторить - я бы оттрассировал этот процесс, но...
Я даже допускаю, что в нашем коде WSH-обёртки каким-то диким образом вмешиваются в этот процесс поиска интерфейсов, хотя со стандартным CAPICOM ничего не ломается.

Если будет время, я пороюсь вглубь, если придумаю где. Сегодня вряд ли
Ну и самый первый пост намекает ,что где-то сделано ненадёжно....

Offline MWB Dmitry  
#47 Оставлено : 14 февраля 2024 г. 14:22:02(UTC)
MWB Dmitry

Статус: Активный участник

Группы: Участники
Зарегистрирован: 13.02.2024(UTC)
Сообщений: 73
Российская Федерация

Сказал(а) «Спасибо»: 2 раз
К сожалению, нативно - опять все работает и не падает...

Код:

var
  v: Variant;
  o: OleVariant;
  u: iUnknown;
  d: iDispatch;
begin
  try
    CoInitialize(nil); //  OleInitialize(nil);
    v := CreateOleObject('CAdESCOM.Store');

    // здесь потенциально везде получения новых объектов-делегатов
    u := v;
    d := u as iDispatch;
    u := d;
    v := u;
    o := v;
//    d := o; // EVariantCast
    d := iUnknown(o) as IDispatch;
    u := d;
    v := u;
    v := iUnknown(v) as IDispatch;

    v.Open(2,'My',0);
    WriteLn('Store.Open passed');
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
5 Страницы«<345
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.