Функция fopen
возвращает указатель на структуру FILE
, которую следует рассматривать как непрозрачное значение, не затрагивая с его содержанием или значением.
В Windows среда выполнения C является оболочкой Windows API, а функция fopen
полагается на функцию CreateFile
. Функция CreateFile
возвращает HANDLE
, который используется другим Windows API.
Теперь мне нужно использовать Windows API глубоко внутри библиотеки, которая использует fopen
и ФАЙЛ *
. Итак: есть ли способ получить HANDLE
из структуры FILE
? Поскольку это зависит от компилятора, я имею в виду библиотеку времени выполнения MSVC.
Я понимаю, что это был бы уродливый непереносимый взлом, и он мог сломаться, если Microsoft изменит внутренний формат FILE
. .. но я работаю в закрытой системе (то есть во встроенной системе Windows CE), и рефакторинг библиотеки будет трудным и трудоемким.