Есть ли какой-нибудь инструмент или помощник для переноса приложения MFC / C ++ на OS X / Cocoa? - PullRequest
1 голос
/ 02 апреля 2009

У меня есть значительная кодовая база, написанная на MFC, и мне поручено создать порт для Mac OS X. Я знаю, что в какой-то момент мне придется закатать рукава и выполнить большую работу, чтобы все заработало правильно, но есть ли какие-нибудь инструменты, которые могут помочь мне?

Ответы [ 3 ]

1 голос
/ 02 апреля 2009

Я работаю над одним.

С точки зрения графического интерфейса, новая версия AppMaker основана на модели импорта / генерации. Большая часть коммерческой работы, которую я проделал с AppMaker, была другой, портируя приложения Macintosh на Windows. Однако нет причин, по которым те же принципы нельзя применять в обратном порядке.

В AppMaker v2 был очень хороший импортер ресурсов пользовательского интерфейса PowerPlant и традиционных диалогов Mac. Поскольку он может работать только на Classic, эта кодовая база была отброшена (вы действительно не хотите знать), и последний язык генератора, который я написал для AppMaker v2, является экспортером XML, который выгружает всю объектную модель в расширенный XAML .

У меня уже есть генератор пользовательского интерфейса XAML, и в настоящее время я работаю над генератором Какао-киба - одной из причин, по которой я должен был пойти на WWDC в июне. В настоящее время основное внимание уделяется пакетам импорта / генерации, прежде чем вернуться к редактору графического интерфейса.

Я написал PP2MFC , чтобы разрешить компиляцию приложений PowerPlant для Windows - кросс-платформенное решение, необходимое в то время, когда никакой другой фреймворк или кроссплатформенный инструмент в то время (1997) не работал бы достаточно хорошо для оборудования требования. С тех пор я обсуждал противоположную программу с кем-то, за кем я мог бы пообщаться, и я уверен, что можно создать слой переносимости MFC для сопоставления с объектами Какао. Хотя многие разработчики плохо относятся к архитектуре карт сообщений MFC, API, основанный на макросах, находится на вершине разумно чистой ОО-инфраструктуры.

Это проект, в котором вам нужно подумать о долговременной поддержке - хотите ли вы что-то, что в итоге превращается в большие куски кода MFC, работающего с Какао, или вы хотите перейти на идиоматическую программу Какао.

Любое дальнейшее обсуждение, вероятно, следует прекратить, поэтому - свяжитесь со мной по адресу Дент на oofile.com.au, но я рад обсудить здесь технические и практические возможности. Комбинация генерации кода и слоев адаптера фреймворка работает лучше, чем многие ожидают.

1 голос
/ 02 апреля 2009

Честно говоря, модели настолько разные, что я подозреваю, что вам понадобится сделать почти полный перекод, по крайней мере, для большинства частей пользовательского интерфейса.

0 голосов
/ 02 апреля 2009

Нет, такой инструмент было бы практически невозможно написать.

MFC и Какао - это такие принципиально разные платформы, что нет простого способа конвертировать между ними.

В зависимости от того, как вы написали свои приложения, вам нужно будет либо написать GUI-часть вашего кода, либо даже всю кодовую базу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...