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