Компьютерная графика

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Компьютерная графика » ООП, Python, Ruby, Lua, Obj-C, Smalltalk, D » Кросс-платформенная C++ реализация Cocoa


Кросс-платформенная C++ реализация Cocoa

Сообщений 1 страница 7 из 7

1

Всем привет!
Я занимаюсь разработкой под Windows / Mac OS / iPhone. Соответственно мне очень нравится Cocoa framework и язык Objective-C на Мас'e, но так как приложения которые я пишу должны еще и запускаться на Windows то приходилось писать на классическом С++ с STL, что меня не особо радовало. Поетому я написал кросс-платформенную реализацию на С++ Foundation framework'а (покачто только самые необходимые классы), метаинфу, мемори менеджмент вточности как это сделано на Objective-C. Сейчас работаю с использованием этой библиотеке: не Cocoa но все же лучше STL :)

http://code.google.com/p/dcocoa/

Либа распространяется по LGPL так что кому надо, можете брать и пользоваться, ну и мне можно писать о багах или улучшениях которые можно произвести в ней.

0

2

Кому интересно я еще когда-то давно предпринимал попытки портирования Objective-C кода на Visual Studio, написал полноценный рантайм языка Objective-C 1.0 а вот до парсера руки не дошли :)

http://code.google.com/p/qobjc/

Сейчас этот проект скорее всего представляет собой академическую ценность.

0

3

Очень интересно, посмотрю
Хотя IMHO пытаться как-то улучшать С++ смысла не имеет - лучше сразу переходить на другой язык (напримекр, докрутить поддекжку obj-c в Code::Blocks или CodeLight)

0

4

DoctorSet написал(а):

но так как приложения которые я пишу должны еще и запускаться на Windows то приходилось писать на классическом С++ с STL

Apple runtime портирован на Windows из-за iTunes и Safari

Реализация довольно интересна, но мне не интересна даже с академической точки зрения. Я стараюсь не мешать библиотеки и языки.

Также я не совсем понял с какого боку тут затесался iPhone

0

5

to crsib:
Ну...   iTunes написан на С++, это один из самых древних эпловских проектов :) Хотя не исключено что какие-то плагины к нему могут быть сделаны и на ObjC.
А iPhone затесался таким вот образом - Я программист-ScrumMaster на конторе что пишет игрушки под iPhone. И мы вначале делаем высокополигональные модели (для Мас, PC) а затем упрощаем для iPhone и таким вот образом получаем казуальную игрушку на нескольких платформах, но она должна компилится везде, поэтому для бизнесс-логики изпользуется dCocoa (моя либа) которая воркает как на PC, Mac, так и на iPhone.

"Я стараюсь не мешать библиотеки и языки." - моя qobjc это runtime библиотека, без рантайма язык бы не существовал, это реализация языка поетому здесь ничего не мешается.

0

6

DoctorSet написал(а):

iTunes написан на С++

Зато Safari писался только на obj-c

Еще раз, доступен почти полный рантайм для Windows. Можете ради интереса почитать это.

В вашем коде все равно будут жестко платформо-зависимые моменты, хотя бы из-за разного подхода к организации оконной системы. На указанном вами списке платформ так или иначе существуют реализации obj-c. Используйте их, если Вам так не нравится С++. Foundation framework приобрел такой вид только из-за того, что он делался как Obj-C фреймворк. То же Core Foundation имеет несколько (ладно сильно) другой вид ввиду того, что это С библиотека. На С++ он бы тоже выглядел по другому. Нет особого смысла портировать библиотеку, точившуюся под один язык "в чистом виде" на другой. (При этом не стоит путать подобное "портирование" с binding'ом)

DoctorSet написал(а):

это реализация языка поетому здесь ничего не мешается.

Это не реализация языка. Это реализация рантайм библиотеки. Это как если бы вы реализовали libstdc++(libc) и говорили что реализовали С++(С). И вообще я говорил о dCocoa.

DoctorSet написал(а):

dCocoa (моя либа) которая воркает как на PC, Mac, так и на iPhone.

И в двух последних случаях теряет Core Foundation с нижнего уровня почти всюду.

0

7

Я мог бы ответить на все выше перечисленные моменты, но не стану этого делать, ибо не люблю затевать споры которые ни к чему не ведут. Я вначале писал либу для себя, и меня она устраивает - 1)Удобство, 2) Хороший перформанс, 3) схожесть с Foundation framework. 4) Кросс-платформенность.

Если нравится - пользуйтесь, не нравится - не пользуйтесь, все просто ;)

+1


Вы здесь » Компьютерная графика » ООП, Python, Ruby, Lua, Obj-C, Smalltalk, D » Кросс-платформенная C++ реализация Cocoa


создать форум