23 / 21 / 4
Регистрация: 03.11.2010
Сообщений: 169
|
|
1 | |
Как добавить в проект DLL, написанную на C++13.11.2012, 00:26. Показов 13487. Ответов 58
Метки нет (Все метки)
Добавил в проект свою DLL написанную на C++, как ее теперь использовать?
using имя_dll не работает. Добавлено через 6 минут Через "Проект" -> "Добавить ссылку" не добавляется. Почему? Добавлено через 2 минуты Пересобрал dll с включенным CLR, добавилась как ссылка. Дописал using имя_dll, ошибки:
0
|
13.11.2012, 00:26 | |
Ответы с готовыми решениями:
58
Как добавить Timer в ActiveX.dll проект? Как подключить dll, написанную на C, к dll на Delphi Как добавить Microsoft.Speech.dll в проект Unity? Как добавить Microsoft.Speech.dll в проект Unity? |
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 70
|
|
16.06.2015, 17:03 | 41 |
Ну я тупой! Читать разучился, наверное. Конечно, когда я изменил область видимости, тут же и сработало! Выдаёт цифру 33 в качестве результата.
Теперь понять бы что надо написать в качестве аргумента функции CH341OpenDevice(ххх) и CH341CloseDevice(ххх)?
0
|
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 70
|
|
16.06.2015, 18:43 | 43 |
А я никак не мог понять что за хрень вылазит в блокноте при просмотре файла .\LIB\C\CH341DLL.H!
Надо было его в Worde конвертнуть и тогда жучки китайские повываливались. Во как... Век живи - век учись и всё равно дураком помрёшь, однако.
0
|
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 70
|
||||||
22.06.2015, 10:57 | 44 | |||||
Продолжил в выходные мучить свою железку. Пытался оживить прочие функции, описанные в \LIB\C\CH341DLL.H. Однако затыка вышла на функции
0
|
Почетный модератор
|
||||||
22.06.2015, 11:44 | 45 | |||||
0
|
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 70
|
|||||||||||
23.06.2015, 00:00 | 46 | ||||||||||
А вместо многоточия
Если не в тягость, разъясните пожалуйста поподробнее смысл действий. Добавлено через 2 часа 57 минут Извиняюсь. Прочитал своё сообщение и понял, что второпях написал не то. Вместо многоточия надо вставить CH341DLL.dll Добавлено через 9 часов 9 минут Вариант с
0
|
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 70
|
||||||
23.06.2015, 12:12 | 48 | |||||
0
|
Почетный модератор
|
||||||||||||||||
23.06.2015, 13:40 | 49 | |||||||||||||||
Вам нужно выделить непрерывный участок памяти и передать его функции. Использование должно быть такое:
1
|
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 70
|
|||||||||||
23.06.2015, 14:33 | 50 | ||||||||||
А почему именно такого размера буфер? Я в
0
|
Почетный модератор
|
|
23.06.2015, 14:42 | 51 |
Так определено в документации, да и внутри функция проверяет что если буфер больше 0x400, то задает его равным 0x400. Используя недостаточный буфер нужно будет усложнять логику получения данных, что будете делать если буфер будет мал? Используя 0x400 задумываться о фейле со стороны нехватки памяти для записи не нужно.
Что за дескриптор? От CH341OpenDevice который? Сейчас он 34, завтра может стать 12345678 например, никто этого не гарантирует. И да, завязываться на значение нельзя, тип IntPtr платформо-зависимый, в x86 процессе он 4 байта, в x64 - 8 байт.
0
|
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 70
|
|
23.06.2015, 14:54 | 52 |
Ну да. Правда я перепутал дескриптор и номер версии получаемый от CH341GetVersion(). Сейчас глянул - дескриптор действительно принимает разные значения в диапазоне примерно 800-1000. Вы правы. Спасибо за разъяснения.
А в результате работы CH341GetDeviceDescr получается либо Thrue, либо False. Не по теме: Что-то у меня когда открыта эта ветка моя Опера постоянно обновляет страницу. Когда выходишь уровнем выше этого нет. Что за глюк?
0
|
NickoTin
|
23.06.2015, 16:00
#53
|
0
|
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 70
|
||||||||||||||||
25.06.2015, 17:15 | 54 | |||||||||||||||
Тяжко как то идёт у меня дело. Оживил ещё несколько функций, но главного - создания терминала для приёма-передачи по SPI я так и не добился.
Проблема, например, запустить вот такую функцию:
Делал так:
Вероятно из-за этого не работает и другая функция:
0
|
Почетный модератор
|
|
26.06.2015, 15:34 | 55 |
0, 1, 2, 3, 4 соответственно.
Вероятно. Почему string последний параметр? Судя по описанию это In-Out параметр, т.е. который функция может изменить. Должно быть либо byte[] либо IntPtr. Тут я ничем не помогу, т.к. с библиотекой не работал и не знаю какие корректные настройки нужны для порта.
0
|
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 70
|
|
26.06.2015, 17:02 | 56 |
Подставлять 3 и 4 не пробовал, но от этого ситуация, я думаю, не поменяется.
Хотелось прочитать что-то осмысленное в ответе устройства.
0
|
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 70
|
|||||||||||
06.08.2015, 16:21 | 57 | ||||||||||
Есть одна проблема, которую я не смог решить - это управление скоростью обмена по SPI. Для определения параметров приёма/передачи используется функция
Bit[1:0]- speed:00=20kHz, 01=100KHz, 10=400KHz, 11=750kHz Bit 7: SPI byte bit order, 0 = LSB first, 1 = MSB first Bit [2]: SPI's I/O lines, 0 = single-input/ single-output (D3=clock / D5=out / D7=in) (default); 1 = double input/ double output: D3 clock / (D5=out D4=in) / (D7=in D6=out) Далее для передачи данных используется функция
0
|
0 / 0 / 0
Регистрация: 23.05.2014
Сообщений: 70
|
||||||||||||||||
07.08.2015, 15:59 | 59 | |||||||||||||||
Да, корректно. Сейчас проверил:
Вы имели в виду это:
Тоже, кстати, сейчас проверил.
0
|
07.08.2015, 15:59 | |
07.08.2015, 15:59 | |
Помогаю со студенческими работами здесь
59
Как иcследовать DLL написанную на С++ 5.0? Как иcследовать DLL написанную на С++, Delphi? Как использовать DLL библиотеку написанную на VB в программе Не могу добавить DLL в проект Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |