Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 28.06.2008, 14:15   #1
jimon
 
Сообщений: n/a
По ту сторону барикад или разработка компиляторо-независимого кода

тут предлагаю выкладывать советы, мысли и идеи по сабжу

стандарт C++ в принципе всеми воспринимается по разному
в том же MSVC куча microsoft specified фич
код который удачно компилируется на Mingw ... врядли
так же удачно скомпилируется на msvc 2008
о обратном ваще молчу ...
но есть методы и подходы которые минимализируют
затраты на портирование кода ...

и так несколько советов :

1) помимо студии установите себе mingw и code::blocks
сумарно установщик скачает около 60-70 мб
и раз в неделю импортируйте проект в code::blocks и пытайтесь
его скомпилировать, это уже покажет множество
проблем при портировании на линукс

2) STL это конечно хорошо, но надо планировать архитектуру так
чтобы классы STL при потребности можно было заменить на свои
спорные функции лутче переопределить на свои с inline параметром

3) обязательно переопределите классы для unicode и ansi текста
хотя бы через typedef ... очень часто могут возникнуть с етим проблемы

4) MSVC компилирует только то что нужно, GCC компилирует всё
это конечно странно, но я с таким столкнулся при компиляции
статически либ ... msvc просто вырезал функции которые нигде не вызывались ... а GCC порядочно матерился что я там дефайны не поставил
и тд .. в общем GCC покажет все ошибки кода

5) выделите в своём коде Platform Depends секцию, а лутче
и отдельную библиотеку ... менеджемент памяти, управление окнами
вызов системных диалогов и прочая гадость - всё зависит от платформы
и компилятора ... так что сведите весь зависимый код в отдельную
библиотеку ... с ней потом и будете шаманить

6) избегайте любых компиляторо-зависимых решений ...
все компиляторы делают по разному и если вы решили делать
какие либо там прыжки по таблице переходов то лутче
уж выделите это препроцессором и пусть включается только
если компилируется на определённом компиляторе
важно иметь к каждому хитрому решению и не хитрое
иногда главное чтобы работало .. а о скорости потом будем думать

7) GCC требует чтобы последняя строчка заголовка была пустая
странное требование ... но если его не выполнять то будет куча мата

8 ) нельзя использовать windows specified типы во всём коде
пусть они используется только в маленьком кусочке кода в platform

9) в линуксе название файлов так же зависит от регистра букв
так что если в винде "aaa.txt" и "AAA.txt" это один и тот же файл
то в линуксе это разные файлы

ps. и еще куча советов буду дополнять исходя из своих похождений

Последний раз редактировалось jimon, 28.06.2008 в 14:51.
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
HolyDel (03.07.2008)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
требуется разработка для iPhone inkognito Основной форум 1 04.08.2009 01:04
Разработка игр под Нокию beisik Прочие вопросы 20 25.05.2009 10:17
Разработка сетевых игр HolyDel FAQ 23 29.04.2008 20:35
mGUI (Разработка) moka Библиотеки 30 30.10.2007 14:08
Позиционирование и разработка текстур? Delta_Q Создание текстур 5 22.10.2007 19:35


Часовой пояс GMT +4, время: 19:31.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com