Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
#1

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

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

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

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

Java: Клнирование класса - Программирование Android
Как в яве сделать подобное? Есть МОЙ класс My() clas My { public int asdf1; public int asdf2; public int asdf3; }

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

Создание объекта класса - Программирование Android
public class MyClass { static int Variable = 1; } //создаю первый объект new MyClass(); //здесь MyClass.Variable = 1 ...

Создание класса и вызов его методов - Программирование Android
Код: public class DIYliq extends AppCompatActivity implements View.OnClickListener, SeekBar.OnSeekBarChangeListener { //... int...

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

7
Gerbasha
6 / 6 / 1
Регистрация: 04.10.2011
Сообщений: 115
30.03.2014, 20:53 #2
Гугли в сторону JNI for Anroid
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
30.03.2014, 21:04  [ТС] #3
Гуглил, но именно это не получается найти...
Просто интересно можно ли написать класс в C++ так, чтобы в Java потом создать его наподобие java-класса:
Java
1
Object c = new Object();
Ну, что-то вроде этого...
0
Netscape
374 / 361 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
30.03.2014, 21:38 #4
Нет, не возможно.
0
Gerbasha
6 / 6 / 1
Регистрация: 04.10.2011
Сообщений: 115
30.03.2014, 21:40 #5
Нет насколько я знаю
0
EVP
390 / 246 / 43
Регистрация: 14.12.2010
Сообщений: 472
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 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
31.03.2014, 10:56 #7
А как работать со сложными данными? Си состоит из 2х классов. Во время инициализации 1го класса создается внутренняя переменная со вторым классом. Как передать ссылку на тот второй класс из си в яву и назад?

Например наш ява-си класс работает с нестандартным файлом (бинарное чтение в блоки). Как создать 2 и больше экземпляров класса, и не терять ссылку на открытый файл и уже прочитанные блоки для каждого класса, если блок памяти создавался в сишной части? Как передать "ссылку" на блок памяти или класс между си и явой? Я так понимаю подобное происходит при работе с SQLite - передается некий "идентификатор" открытой базы или ссылка на него...
0
EVP
390 / 246 / 43
Регистрация: 14.12.2010
Сообщений: 472
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 - Программирование Android
как создать простое приложение на Java в android studio ? - не для планшета телефона или часов. для Windows скажем так. кто в android...

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

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

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


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

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

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