Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 608
#1

Создание экземпляра класса C++ в Java - Программирование Android

30.03.2014, 20:36. Просмотров 833. Ответов 7
Метки нет (Все метки)

Здравствуйте!
Подскажите, возможно ли создать экземпляр класса C++ в Java? Если да, то как? Если можно то пример с кодом C++ класса и созданием его экземпляра в Java.
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2014, 20:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Создание экземпляра класса C++ в Java (Программирование Android):

Как заставить переменную не создаваться заново при создании экземпляра класса?
Проблема с переменной string. Надеюсь понятно напишу. Создан отдельный класс...

Java: Клнирование класса
Как в яве сделать подобное? Есть МОЙ класс My() clas My { public int...

Базовый синтаксис Java Условия If Else Внутри класса
Всем привет. Я только начинаю кодить на Java до этого имел небольшой опыт JS и...

Создание объекта класса
public class MyClass { static int Variable = 1; } //создаю первый...

Создание класса и вызов его методов
Код: public class DIYliq extends AppCompatActivity implements...

Создание элементов интерфейса в Java коде
Здравствуйте! У меня есть класс PuzzleView, реализующий собственный View. В...

7
Gerbasha
6 / 6 / 2
Регистрация: 04.10.2011
Сообщений: 115
30.03.2014, 20:53 #2
Гугли в сторону JNI for Anroid
0
contedevel
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 608
30.03.2014, 21:04  [ТС] #3
Гуглил, но именно это не получается найти...
Просто интересно можно ли написать класс в C++ так, чтобы в Java потом создать его наподобие java-класса:
Java
1
Object c = new Object();
Ну, что-то вроде этого...
0
Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
30.03.2014, 21:38 #4
Нет, не возможно.
0
Gerbasha
6 / 6 / 2
Регистрация: 04.10.2011
Сообщений: 115
30.03.2014, 21:40 #5
Нет насколько я знаю
0
EVP
489 / 257 / 57
Регистрация: 14.12.2010
Сообщений: 515
30.03.2014, 22:56 #6
Цитата Сообщение от contedevel Посмотреть сообщение
Гуглил, но именно это не получается найти...
Просто интересно можно ли написать класс в C++ так, чтобы в Java потом создать его наподобие java-класса:
Код Java(TM) 2 Platform Standard Edition 5.0
1
Object c = new Object();
Кроме класса на С++, понадобится его обёртка на Java. Вот пример.
2
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
31.03.2014, 10:56 #7
А как работать со сложными данными? Си состоит из 2х классов. Во время инициализации 1го класса создается внутренняя переменная со вторым классом. Как передать ссылку на тот второй класс из си в яву и назад?

Например наш ява-си класс работает с нестандартным файлом (бинарное чтение в блоки). Как создать 2 и больше экземпляров класса, и не терять ссылку на открытый файл и уже прочитанные блоки для каждого класса, если блок памяти создавался в сишной части? Как передать "ссылку" на блок памяти или класс между си и явой? Я так понимаю подобное происходит при работе с SQLite - передается некий "идентификатор" открытой базы или ссылка на него...
0
EVP
489 / 257 / 57
Регистрация: 14.12.2010
Сообщений: 515
31.03.2014, 15:53 #8
Цитата Сообщение от Tester64 Посмотреть сообщение
А как работать со сложными данными? Си состоит из 2х классов. Во время инициализации 1го класса создается внутренняя переменная со вторым классом. Как передать ссылку на тот второй класс из си в яву и назад?
C++ и Java используют разные подходы к управлению ресурсами.
При их взаимодействии придётся держаться стороны Java.
Поэтому на стороне C++ должен быть учёт работы GC Java, т.е. нужно использовать объекты с подсчётом ссылок (например, через std::shared_ptr).
Т.е. вложенный объект второго класса в объекте первого класса должен быть размещён через std::shared_ptr.
Чтобы дать ссылку в Java на объект второго класса понадобится прокси объект (с обёрткой на Java), который будет управляться полностью Java, но содержать объект второго класса через разделяемый указатель (аля std::shared_ptr).
Соответственно, при получении Java обёртки на прокси-объект второго класса, можно извлечь из прокси разделяемую ссылку на второй объект.
1
31.03.2014, 15:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2014, 15:53
Привет! Вот еще темы с решениями:

Создание приложения на Java в среде разработки android studio
как создать простое приложение на Java в android studio ? - не для планшета...

Создание игры just for fun и немного для обучения — движок или plain Java?
Решил написать свою интерпретацию Doodle Jump под Android. Пишу в основном для...

Серийный номер экземпляра приложения
Интересно знать, есть ли какой-нибудь способ автоматически присваивать каждому...

Почему устанавливается три экземпляра вместо одного?
Добрый вечер, сделал приложение на андроид но после установки на устройстве...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru