|
0 / 0 / 0
Регистрация: 04.11.2015
Сообщений: 1
|
|||||||||||||||||||||
Использование метода из dll (C++) с callback аргументами в C# программе?23.01.2019, 11:28. Показов 903. Ответов 3
Метки нет (Все метки)
Уже всю голову сломал, не могу разобраться с тем, как сопоставить типы данных параметров.
Расскажу подробнее. Есть радиоприемник управляемый по usb, для реализации его функций в комплекте поставки идёт их SDK с библиотекой на C++. В SDK обозначен пример на C#, но там не реализовывалась необходимая мне функция. Вот так выглядит описание метода: SetupStreams Function for activating the IF and/or audio streams callback functions while the demodulator is active.
hRadio - Handle to a radio device that was returned by OpenRadioDevice or Open. IFH - Application provided function to be called by the API when there is new data received through the IF stream from the receiver; if NULL IF streaming is nolonger sent to the application IFT - Argument to be passed to the IFH application defined callback function AudioH - Application provided function to be called by the API when there is new data received through the audio stream from the receiver; if NULL audio streaming is nolonger sent to the application AudioT - Argument to be passed to the AudioH application defined callback function Return Value - The return value is TRUE if the streams callback functions could be properly set and FALSE if not. Вид функции callback. For demodulators that provide more channels (like ISB), both channels are provided in the audio stream with alternating samples. Both callback functions should like like this:
Target - application specified value when the callback functions are registered; Buf - buffer with the 16-bit signed integer samples read from the DSP memory; Size - size of the buffer holding the samples in bytes; SamplingRate - samples sampling rate. The buffers sent to the application defined callback functions will always have the same size and will always contain the same number of samples of samples sets. In no case they will contain fractions of samples or samples sets. На C# методы я реализовал таким образом:
"Приложение находится в режиме приостановки выполнения. Приложение перешло в состояние останова, но в данный момент не выполняется код, который поддерживается выбранным модулем отладки" Мне кажется, что я где то неправильно определил типы данных...или как то ссылки на область памяти не выделил...Очень нужна помощь в этом вопросе.
0
|
|||||||||||||||||||||
| 23.01.2019, 11:28 | |
|
Ответы с готовыми решениями:
3
Использование чужой DLL в своей программе |
|
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
|
|
| 23.01.2019, 14:57 | |
|
nickholas, надо смотреть что там у вас и как. Суть в том вы в методе должны передать ссылки на функции в которых будет происходить обработка. учитывать надо все, типы данных, даже разрядность приложения x64 может внести свои коррективы.
0
|
|
|
|
||||||||
| 23.01.2019, 15:25 | ||||||||
0
|
||||||||
|
Администратор
|
||||||
| 23.01.2019, 16:39 | ||||||
|
nickholas, похоже сборщик мусора удаляет экземпляр делегата прежде чем он вызывается. Попробуй сохранить экземпляр делегата в поле класса
0
|
||||||
| 23.01.2019, 16:39 | |
|
Помогаю со студенческими работами здесь
4
Использование чужой dll в своей программе Использование Dll написанной в VC++ в программе компилируемой MinGW callback метода класса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|