【发布时间】:2011-04-28 17:18:07
【问题描述】:
@987654321@ 函数返回一个指向FILE 结构的指针,该结构应被视为不透明值,而不处理其内容或含义。
在 Windows 上,C 运行时是 Windows API 的包装器,fopen 函数依赖于 @987654322@ 函数。 CreateFile 函数返回一个HANDLE,供其他 Windows API 使用。
现在,我需要在使用fopen 和FILE* 的库的深处使用Windows API。那么:有没有办法从FILE 结构中获取HANDLE?由于这是特定于编译器的,我的意思是在 MSVC 运行时库上。
我知道这将是一个丑陋的、不可移植的 hack,如果 Microsoft 更改 FILE 的内部格式,它可能会崩溃...但我正在一个封闭的系统上开发(即在 Windows CE 嵌入式系统)和重构库将是困难和耗时的。
【问题讨论】:
-
好问题,2 年前我自己处理过这个问题。
标签: c winapi windows-ce msvcrt crt