Я сейчас пишу приложение и, возможно, буду переносить его на другие платформы будь то Linux, WindowsCE... Пишу на C++.
Суть:
Взять например работу с файлами.
Есть некая функция в windows writefile(string name, byte bt) (она выглядит не так но это не важно), которая записывает байт "bt" в файл с именем "name". В linux есть же другая функция WriteFileByte(string name, byte bt) (она выглядит не так но это не важно), которая делает тоже самое или почти тоже самое. Вообщем у разных OS есть функции, которые примерно одинаково называются и делают одно и примерно одно и тоже.
Для организации многоплатформенности можно написать межплатформенную библиотеку, имеющую примерно следующий код:
Код: Выделить всё
#ifdef WINDOWS
#define WriteFile(name,bt) writefile((name),(bt))
#endif
#ifdef LINUX
#define WriteFile(name,bt) WriteFileByte((name), (bt))
#endif
Естественно всё сложнее т.к. функции могут отличаться количеством параметров, и даже более: в одной OS нужно будет вызвать 2 функции, чтобы записать один байт в файл, а в другой OS одну.
У программы будет гибкая возможность перебазироваться на другую платформу. Достаточно будет окорректровать межплатформенную библиотеку, добавив:
Код: Выделить всё
#ifdef MAC_OS
#define WriteFile(name,bt) WriteFileByte((name), (bt))
#endif
Есть ли такие или примерно такие или во всяком случае, позволяющие переходить с одной платформы на другую библиотеки? Интересный ли вариант я рассмотрел?