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