Попробуйте скомпилировать его с Winelib , и вам не придется переписывать большинство функций.
В свете ваших комментариев, учитывая время иресурсы Я бы определенно разделил исходный код на четко определенные уровни:
Уровень, зависящий от ОС / платформы,
Уровень абстракции ОС,
Промежуточное программное обеспечение, независимое от ОС &
Уровень пользовательского интерфейса
Это самая базовая многоуровневая архитектура, с которой можно столкнуться в любом программном приложении.Таким образом, всякий раз, когда мне нужно перенести его на новую операционную систему / платформу, мне просто нужно написать OS/platform dependent layer
, и все остальные мои слои остаются неизменными.Точно так же, когда возникает необходимость изменить структуру пользовательского интерфейса, я легко могу изменить UI layer
, а остальная часть стека остается неизменной.
Конечно, такое решение требует достаточно времени и ресурсов в вашем распоряжении, но как только вы это сделаетев будущем ваша жизнь станет намного проще.