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

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
Johnybgoode777
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 13
#1

Как прикрутить яблочный интерфейс к коду на C++? - Программирование iOS/iPhone

03.01.2014, 22:53. Просмотров 552. Ответов 4
Метки нет (Все метки)

Всем привет! У меня есть консольная прога, написанная в Xcode на С++. Мне нужно приделать к ней яблочный интерфейс. Но вот проблема - Cocoa написан на Objective С. Знаю, что есть ещё Carbon, который позволяет делать интерфейс на плюсах, но он уже давно не поддерживается XCode. Стал искать, как встроить код на C++ в код на Obj C, нашёл вот эту статью, но ни фига не понял. Подскажите, как можно приделать яблочный интерфейс к моей проге.
P.S.1 Просьба не предлагать мне использовать Qt.
P.S.2 Просьба не предлагать мне переписывать весь код на Obj C.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2014, 22:53     Как прикрутить яблочный интерфейс к коду на C++?
Посмотрите здесь:

Как прикрутить разработку под iOS к eclipse ?
Интерфейс без Storyboard для новичка
Как прикрутить карты от яндекса
Пользовательский интерфейс для разных ориентаций девайса
Xcode интерфейс приложения mainstoryboard
Динамический интерфейс

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
03.01.2014, 23:59     Как прикрутить яблочный интерфейс к коду на C++? #2
Цитата Сообщение от Johnybgoode777 Посмотреть сообщение
нашёл вот эту статью, но ни фига не понял
Ну так учите мат часть

Интерфейс вам все равно придется писать на Objective-C. В любом случае. //Хотя можете написать все на Си и OpenGL...
Но использовать c++ при этом вам никто не будет мешать. Не зря же для этого есть "Objectve C++" и расширение файлов ".mm"
Johnybgoode777
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 13
04.01.2014, 04:09  [ТС]     Как прикрутить яблочный интерфейс к коду на C++? #3
Цитата Сообщение от zulkis Посмотреть сообщение
Интерфейс вам все равно придется писать на Objective-C.
Капитан Очевидность
Я уже начал переделывать свой проект на Objective С++. Импортирую с C++ класс и инкапсулирую его Obj-C классом.
Objective-C
1
2
3
4
5
6
#import "Header.hpp"
@interface mn : NSObject{
  mnai *m;
}
- (id)initWithRe: (double)dval1 : (double)dval2 : (double)dval3 : (double)dval4 : (double)dval5 : (int)ival1 : (int)ival2;
@end
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#import "mn.h"
 
@implementation mn
- (id)initWithRe: (double)dval1 : (double)dval2 : (double)dval3 : (double)dval4 : (double)dval5 : (int)ival1 : (int)ival2{
    self = [super init];
    if (self != nil) {
        m = new mnai(dval1, dval2, dval3, dval4, dval5, ival1, ival2);
        
    }
    return self;
}
- (void) dealloc {
    delete m;
    //[super dealloc];
}
 
@end
Но есть одна проблема. В С++-классах у меня используются объекты типа List из STL. Когда, я подключил файлы C++ класса к Obj С проекту, компилятор начал ругаться на все упоминания типа List. И на CPP-шное слово class ругается, предлагает заменить на Class из Obj С.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
04.01.2014, 10:25     Как прикрутить яблочный интерфейс к коду на C++? #4
Все файлы реализации с зависимостями от c++ названы как .mm?
Johnybgoode777
0 / 0 / 0
Регистрация: 29.12.2013
Сообщений: 13
04.01.2014, 15:02  [ТС]     Как прикрутить яблочный интерфейс к коду на C++? #5
Да. Я уже сам разобрался, что нужно сделать. Дабл клик по проекту, открываются Build Settings, далее нужно перейти к Apple LLVM 5.0 - Language и напротив Compile Sources as выбрать Objective C++.
Yandex
Объявления
04.01.2014, 15:02     Как прикрутить яблочный интерфейс к коду на C++?
Ответ Создать тему
Опции темы

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