1 | |
Создание dll на C++ и вызов метода dll из C#.25.09.2011, 16:45. Показов 21590. Ответов 19
Метки нет (Все метки)
Народ, может кто-нибудь выложить конкретный пример, как это сделать? Например есть же нативная библиотека bass.dll, для неё есть обёртка Bass.NET.dll, вот её уже подключаем к проекту и пользуемся, как сделать такое самому? Можете показать на примере?
1
|
25.09.2011, 16:45 | |
Ответы с готовыми решениями:
19
Вызов из c# метода в Dll с++ Вызов функций из DLL на С++ Вызов dll на Delphi из C# Импорт метода из Dll написанной на C++ |
25.09.2011, 22:28 [ТС] | 3 |
Ну меня по большому счёту интересует как вообще всё это сделать. То есть какой тип проекта создать (С++), как подключить библиотеку к проекту на C#. Поэтому и прошу пример, чтобы запустить и посмотреть что и как взаимодействует. Про рефлектор я в курсе.
1
|
Почетный модератор
|
|
25.09.2011, 22:30 | 4 |
Casper-SC, обычная native dll (не CLR) и экспортировать из неё функции, подключать всё через DllImport... Если нужны именно проекты, то попробую у себя поискать что, или написать небольшой пример...
1
|
25.09.2011, 22:35 [ТС] | 5 |
А то есть каждый метод (или как там в C++... функцию...) надо подключать через DllImport? То есть нельзя подключить именно библиотеку и получить методы (хотя походу так и есть, вроде метаданных как в .NET нету в нативе).
Было бы вообще супер. Если можно, то хотелось бы увидеть конкретно передачу строки из натив dll в C# код (как раз для примера всё вроде как просто).
1
|
Почетный модератор
|
|
25.09.2011, 22:39 | 6 |
Да, каждую (или в зависимости от нужды) экспортируемую функцию.
Тут, раздел 4.1 (Пример вызова функции с разным окончанием (A или W) в зависимости от установленного CharSet). Постараюсь что-нибудь найти из проектов, или набросать небольшой, но на C... и не сегодня )
2
|
Почетный модератор
|
|
27.09.2011, 04:18 | 7 |
Вот 2 проекта (на C и C#). Проект на C (dll) - это какая-то бредовая (другого ничего не придумал) реализация работы с файлом. В теории там должно быть: мэппинг файла, чтение файла, установка спец. прав (не знаю зачем, просто взбрело в голову) на область памяти выделенной под буфер, и вроде всё
Проект на C# это wrapper над экспортируемыми функциями из dll. p.s. no comments
3
|
13.10.2011, 01:24 [ТС] | 9 | ||||||||||
Пытаюсь сделать своё. Что-то ничего не работает.
Создал "Проект Win32". В мастере выбрал "Статическая библиотека", снял галочку с: "Предварительно скомпилированный заголовок". Добавил класс Test. Создался Test.h и Test.cpp. Test.h вообще удалил и удалил весь текст из Test.cpp. Скомпилировал NL.dll и кинул в папку с прогой, которая должна вызывать функцию с библиотеки. Написал это (скорее всего пароль в dll тоже не буду хранить открытым текстом, можно тупо вперемешку хранить наверное, короче там видно будет, заставить работать бы):
Кстати не копирую с Си проекта, так как вообще не знаю, что там да как. В С++ я думаю разберусь, как изначально пароль хранить шифрованным или... Короче не открытым текстом, с Си думаю будет мутево, придётся качать книгу, читать и т.д. Я уж раз начал, то лучше продолжу по С++ читать. Другими словами охота сразу сделать на С++, так как его всё хочу выучить, но до недавнего времени, свободное время у меня отсутствовало.
1
|
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
|
||||||
13.10.2011, 02:15 | 10 | |||||
1
|
13.10.2011, 02:21 [ТС] | 11 | |||||
1
|
16 / 16 / 1
Регистрация: 27.02.2017
Сообщений: 196
|
|
26.03.2017, 23:41 | 12 |
можно тему продолжить по прошествии стольких лет
0
|
23 / 23 / 5
Регистрация: 04.04.2012
Сообщений: 107
|
|
03.05.2017, 09:47 | 13 |
NickoTin, А как ещё можно сделать связь между кодом на C и C#?
Поясню sqlite не верно обрабатывает перевод в верхний и нижний регистр не латиницы. Это не ошибка (как разрабочик я откуда знаю как это делается в той или иной операционной системе значит родной ASCII). Я эти функции нашел заменил на winapi и все вроде работает. Но чтобы в net то заработало... я скачал исходники net привязки и разобраться не могу как она сделана, не на DllImport она сделана. Может кто то сталкивался? Вот исходники System.Data.SQLite http://system.data.sqlite.org/... ource.wiki
1
|
03.05.2017, 09:55 | 14 | |||||
0
|
23 / 23 / 5
Регистрация: 04.04.2012
Сообщений: 107
|
|
03.05.2017, 10:29 | 15 |
Rius, Я же не говорил, что он там не используется. Я связь не могу осилить вот в исходнике есть функция например типа соннект к базе как ее в SQLiteConnection затащили
1
|
23 / 23 / 5
Регистрация: 04.04.2012
Сообщений: 107
|
|
03.05.2017, 12:03 | 17 |
Rius,Вопрос то не об ошибках
Информация вот отсюда, если вам интересно http://forum.sources.ru/index.php?showtopic=386692 Качаете исходники не net исправляете и собираете и работает
1
|
03.05.2017, 12:34 | 18 |
rams, да, вопрос в другом. Можно ли решить проблему, не меняя ни нативную библиотеку, ни System.Data.SQLite...
Смотрели, например, Case-Insensitive Sort of UTF8 Data Using System.Data.SQLite и Case-insensitive LIKE in SQLite ?
1
|
23 / 23 / 5
Регистрация: 04.04.2012
Сообщений: 107
|
|
03.05.2017, 13:05 | 19 |
Rius, Спасибо посмотрим, прадва меня больше виртуальные таблицы fts4 и match интересует, но может и там будет работать. Пробовали fts поиск ох...ь скорость
1
|
03.05.2017, 20:50 | 20 | |||||
Небольшой пример для
like :Кликните здесь для просмотра всего текста
1
|
03.05.2017, 20:50 | |
03.05.2017, 20:50 | |
Помогаю со студенческими работами здесь
20
Вызов функции из dll написанной на C Вызов функции из DLL на C#, используя С++ Подключение сторонних DLL и вызов функции Вызов .dll во время выполнения программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |