powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / взаимодействие с сишной библиотечкой крипотования
12 сообщений из 37, страница 2 из 2
взаимодействие с сишной библиотечкой крипотования
    #34686829
Фотография Alexes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Не работает" это как? Опять же про разрядность: точно int подразумевается 32 бита?
...
Рейтинг: 0 / 0
взаимодействие с сишной библиотечкой крипотования
    #34686838
maybeleo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79
Код: plaintext
1.
            CallBack Rand = new CallBack(MP_API.getch_cb);
            MP_API.SetRandInitCallbackFun(Rand);

и не работает :)Ну, как минимум, после MP_API.Set... следует вызвать GC.KeepAlive(Rand).
...
Рейтинг: 0 / 0
взаимодействие с сишной библиотечкой крипотования
    #34686880
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexes"Не работает" это как? Опять же про разрядность: точно int подразумевается 32 бита?

Например, поставил точки останова в функции, но на них ничего не стопится.

int - при несовпадении типа в прошлый раз система проругалась про некорректный стек вызова, сейчас же все тихо.

maybeleo Arm79
Код: plaintext
1.
            CallBack Rand = new CallBack(MP_API.getch_cb);
            MP_API.SetRandInitCallbackFun(Rand);

и не работает :)Ну, как минимум, после MP_API.Set... следует вызвать GC.KeepAlive(Rand).

Сделал.

Смысл вызова пойму попозже, со словариком.
...
Рейтинг: 0 / 0
взаимодействие с сишной библиотечкой крипотования
    #34686892
maybeleo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Сделал.Заработало?
...
Рейтинг: 0 / 0
взаимодействие с сишной библиотечкой крипотования
    #34686900
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maybeleo Arm79Сделал.Заработало?

не-а

PS Почитал про метод, запомню, что для callback-функций, передаваемых в native-code лучше лучше ее применять )
...
Рейтинг: 0 / 0
взаимодействие с сишной библиотечкой крипотования
    #34686945
maybeleo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79не-аА, ё! Эта Ваша Setхххх она ведь только устанавливает callback, а сам callback когда вызываться будет? Короче говоря, смысл в том, чтобы экземпляр делегата, указывающий на callback-метод, "дожил" до этого момента. Исходя из этого, определитесь поточнее с местом, где вызвать GC.KeepAlive. В справке есть неплохие примеры. Других косяков вроде не вижу.
...
Рейтинг: 0 / 0
взаимодействие с сишной библиотечкой крипотования
    #34686971
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maybeleo Arm79не-аА, ё! Эта Ваша Setхххх она ведь только устанавливает callback, а сам callback когда вызываться будет? Короче говоря, смысл в том, чтобы экземпляр делегата, указывающий на callback-метод, "дожил" до этого момента. Исходя из этого, определитесь поточнее с местом, где вызвать GC.KeepAlive. В справке есть неплохие примеры. Других косяков вроде не вижу.

ну KeepAlive я вообще разместил в конце программы. Значит должен дожить?
...
Рейтинг: 0 / 0
взаимодействие с сишной библиотечкой крипотования
    #34690211
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрались чуть чуть )))

проблема была в том, что я в Ansi-шную dll-ку отсылал Unicode-строки. Сейчас по чуть чуть дело пошло.

все string заменяем на byte[] и используем функцию
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
        public static byte[] UnicodeToAnsi(string UnicodeString)
        {
            Encoding _Unicode = Encoding.Unicode;
            Encoding _Ansi = Encoding.ASCII;

            byte[] UnicodeBytes = _Unicode.GetBytes(UnicodeString);
            return Encoding.Convert(_Unicode, _Ansi, UnicodeBytes);
        }

ЗЫ Тему очевидно следовало бы назвать "Ликбез по P/Invoke для чайников"
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
взаимодействие с сишной библиотечкой крипотования
    #37424164
Фотография Gambolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подниму-ка я тему...

Сейчас, в заголовке к библиотеке mespro.dll присутствует такая композиция:

MPFUN void MPAPI SetRandInitCallbackFun(int (MPAPI *Func)(int, int, int, char *));

Уважаемые доны, как ее описать в шарпе? Чет под вечер ничерта голова не варит...
...
Рейтинг: 0 / 0
взаимодействие с сишной библиотечкой крипотования
    #37424314
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GamboltПодниму-ка я тему...

Сейчас, в заголовке к библиотеке mespro.dll присутствует такая композиция:

MPFUN void MPAPI SetRandInitCallbackFun(int (MPAPI *Func)(int, int, int, char *));

Уважаемые доны, как ее описать в шарпе? Чет под вечер ничерта голова не варит...
Например, void SetRandInitCallbackFun(IntPtr pFunc); (по вкусу указать соглашение о вызове)
Функции надо скормить адрес другой функции (один аргумент типа "указатель"). Эта другая функция должна быть нативной, а не управляемой, ибо, по всей видимости, будет вызываться из нативного кода. Главный вопрос - откуда эта функция-аргумент у Вас возьмётся.
Я в такой ситуации писал dll на C, в которой определил функцию для callback'a и экспортировал из dll функцию, возвращающую её адрес. После чего в управляемом коде вызвал функцию своей dll - получил адрес как IntPtr и передал его функции библиотеки.
...
Рейтинг: 0 / 0
взаимодействие с сишной библиотечкой крипотования
    #37424508
Фотография Gambolt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AbstractionGamboltПодниму-ка я тему...

Сейчас, в заголовке к библиотеке mespro.dll присутствует такая композиция:

MPFUN void MPAPI SetRandInitCallbackFun(int (MPAPI *Func)(int, int, int, char *));

Уважаемые доны, как ее описать в шарпе? Чет под вечер ничерта голова не варит...
Например, void SetRandInitCallbackFun(IntPtr pFunc); (по вкусу указать соглашение о вызове)
Функции надо скормить адрес другой функции (один аргумент типа "указатель"). Эта другая функция должна быть нативной, а не управляемой, ибо, по всей видимости, будет вызываться из нативного кода. Главный вопрос - откуда эта функция-аргумент у Вас возьмётся.
Я в такой ситуации писал dll на C, в которой определил функцию для callback'a и экспортировал из dll функцию, возвращающую её адрес. После чего в управляемом коде вызвал функцию своей dll - получил адрес как IntPtr и передал его функции библиотеки.

Понял, спасибо. ))))
Кучеряво. ))))
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
взаимодействие с сишной библиотечкой крипотования
    #39308881
Andrei_Ku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, товарищи!

Настраиваю систему где должны ходить подписанные сообщения (пытаюсь связать C# и mespro.dll)

Прошу выручить примером подписания сообщения/ проверкой подписи/ как ключи загрузить в mespro.dll,
на мой ящик Sooelec@gmail.com или сюда.
Заранее всем неравнодушным спасибо!
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / взаимодействие с сишной библиотечкой крипотования
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]