Ваша ситуация не так уж редка.
Код, предназначенный для переносимости, обычно пишется с использованием стандартных процедур доступа к файлам (fopen
, open
и т. Д.).Код, специфичный для ОС, обычно пишется с использованием собственного API этой ОС.Ваше большое приложение, скорее всего, представляет собой комбинацию этих двух типов кода.У вас не должно возникнуть проблем при смешивании стилей доступа к файлам в одной и той же программе, если вы помните, что они должны быть прямыми (они не являются взаимозаменяемыми).
Самый большой риск, связанный с этим, - это, вероятно, переносимость.Если у вас есть унаследованный код, который существует уже некоторое время, он, вероятно, использует стандартные методы доступа к файлам C / C ++, особенно если он предшествует Win32 API.Использование Win32 API приемлемо, но вы должны понимать, что привязываете свой код к области действия и времени жизни этого API.Вам придется проделать дополнительную работу для переноса этого кода на другую платформу.Вам также придется переделать этот код, если, скажем, в будущем Microsoft устареет Win32 API в пользу чего-то нового.Стандартные методы C / C ++ всегда будут там, постоянными и неизменными.Если вы хотите помочь вашему коду в будущем, придерживайтесь как можно больше стандартных методов и функций.В то же время есть некоторые вещи, которые требуют Win32 API и не могут быть выполнены с использованием стандартных функций.
Если вы работаете с сочетанием стилей C, C ++ и Win32код, тогда я бы предложил разделить (насколько это возможно) ваш специфичный для ОС код и ваш переносимый код на отдельные модули с четко определенными API.Если в будущем вам придется переписывать код Win32, это может упростить задачу.