Как мне получить файл HANDLE из структуры fopen FILE?

Функция fopen возвращает указатель на структуру FILE , которую следует рассматривать как непрозрачное значение, не затрагивая с его содержанием или значением.

В Windows среда выполнения C является оболочкой Windows API, а функция fopen полагается на функцию CreateFile . Функция CreateFile возвращает HANDLE , который используется другим Windows API.

Теперь мне нужно использовать Windows API глубоко внутри библиотеки, которая использует fopen и ФАЙЛ * . Итак: есть ли способ получить HANDLE из структуры FILE ? Поскольку это зависит от компилятора, я имею в виду библиотеку времени выполнения MSVC.

Я понимаю, что это был бы уродливый непереносимый взлом, и он мог сломаться, если Microsoft изменит внутренний формат FILE . .. но я работаю в закрытой системе (то есть во встроенной системе Windows CE), и рефакторинг библиотеки будет трудным и трудоемким.

27
задан lornova 5 September 2014 в 19:03
поделиться