Форум программистов, компьютерный форум CyberForum.ru

Подключение Dll на С++ к Java и С# - C++

Восстановить пароль Регистрация
 
smo
0 / 0 / 0
Регистрация: 14.05.2014
Сообщений: 2
14.05.2014, 20:09     Подключение Dll на С++ к Java и С# #1
Добрый день.

Подскажите, пожалуйста куда копать: надо создать DLL на С++ с функциями, структурами и классом так, чтобы её потом можно было подключить к Java и С#.

Как подключить её к другому С++ приложению - я понимаю. Либо статика либо хэдер, который у меня есть. А вот как это всё импортировать в Java и С# я не представляю, так как кроме обычных типов, там есть ещё и классы и структуры.

Заранее спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2014, 20:09     Подключение Dll на С++ к Java и С#
Посмотрите здесь:

C++ подключение dll
C++ Статическое подключение DLL
подключение dll C++
Подключение dll библиотеки C++
Подключение dll - ошибка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Убежденный
Системный программист
 Аватар для Убежденный
14213 / 6228 / 988
Регистрация: 02.05.2013
Сообщений: 10,385
Завершенные тесты: 1
14.05.2014, 21:14     Подключение Dll на С++ к Java и С# #2
Цитата Сообщение от smo Посмотреть сообщение
Как подключить её к другому С++ приложению - я понимаю. Либо статика либо хэдер, который у меня есть. А вот как это всё импортировать в Java и С# я не представляю, так как кроме обычных типов, там есть ещё и классы и структуры.
К сожалению, интерфейсы в стиле C++ являются непереносимыми на
другие языки. И даже внутри самого C++ есть куча несовместимостей.
Поэтому тут вариантов не шибко много:

1) Сделать экспорт в стиле C, так как это сделано в системных
библиотеках типа kernel32.dll: экспортируются только функции и
только с определенным набором типов, размеры и "поведение"
которых хорошо известны. Никаких классов, шаблонов, исключений и
прочей C++-шной специфики быть не должно, все "урезается" до C.
Указатели на объекты кастятся к <void *>, динамическая память
выделяется и освобождается внутри dll, не покидая ее пределов.

2) COM.
smo
0 / 0 / 0
Регистрация: 14.05.2014
Сообщений: 2
15.05.2014, 12:36  [ТС]     Подключение Dll на С++ к Java и С# #3
Спасибо!

А как можно в таком случае передавать структуры?
Глядя на http://msdn.microsoft.com/ru-ru/libr...v=vs.110).aspx я думаю что передавать структуры можно.
Убежденный
Системный программист
 Аватар для Убежденный
14213 / 6228 / 988
Регистрация: 02.05.2013
Сообщений: 10,385
Завершенные тесты: 1
15.05.2014, 19:55     Подключение Dll на С++ к Java и С# #4
Да, структуры передавать можно.
При условии, что они состоят из известных типов с фиксированным
размером и выравниванием на всех платформах, и что используются
только средства языка C (то есть, никаких public/private, деструкторов,
шаблонов, типов из std/stl и тому подобного).
Timur_CF
39 / 39 / 3
Регистрация: 12.12.2013
Сообщений: 227
Записей в блоге: 1
15.05.2014, 20:13     Подключение Dll на С++ к Java и С# #5
Цитата Сообщение от smo Посмотреть сообщение
Подскажите, пожалуйста куда копать: надо создать DLL на С++ с функциями, структурами и классом так, чтобы её потом можно было подключить к Java и С#.
В Java можно скачать доп. библиотеку WinAPI, а оттуда вызывать твою dll.
Yandex
Объявления
15.05.2014, 20:13     Подключение Dll на С++ к Java и С#
Ответ Создать тему
Опции темы

Текущее время: 04:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru