如何在C++;使用Win32句柄? 我试图用C++中的Win32句柄来获取文件的名称。

如何在C++;使用Win32句柄? 我试图用C++中的Win32句柄来获取文件的名称。,c++,file,winapi,C++,File,Winapi,我还有两个顾虑,文件可能是空的(打开文件可能无法工作),并且我无法使用Windows Vista及以上版本支持的所有高级函数(例如GetFinalPathNameByHandle) 谢谢你的帮助 我不知道win32,但我知道sysinternals process explorer。谷歌提出了一个开源替代方案: 也许学习该代码可以让您做到这一点。对于XP+您可以映射文件,然后调用GetMappedFileName,它将返回名称(尽管不适用于目录)。请参阅。GetMappedFilename()虽

我还有两个顾虑,文件可能是空的(打开文件可能无法工作),并且我无法使用Windows Vista及以上版本支持的所有高级函数(例如GetFinalPathNameByHandle)


谢谢你的帮助

我不知道win32,但我知道sysinternals process explorer。谷歌提出了一个开源替代方案:


也许学习该代码可以让您做到这一点。

对于XP+您可以映射文件,然后调用
GetMappedFileName
,它将返回名称(尽管不适用于目录)。请参阅。

GetMappedFilename()
虽然在MSDN中有推荐,但不是最佳解决方案

我在这里发布的代码完全符合您的要求,可供复制和粘贴:

你说的“处理者”是什么意思?POSIX文件描述符?C标准文件?C++流数据流?Win32 API什么的?Qt还有什么?我想他指的是从
CreateFile
接收到的Win32
句柄
?他应该这么说!并用
winapi
标记问题。这不是C++问题,而是Windows编程问题。为了解决问题,我编辑了这个问题。不幸的是,我仍然无法用你给我们的信息量来回答这个问题。你能澄清一下你所说的“使用所有奇特的功能”是什么意思吗?你的意思是不能使用STL吗?嘿,花哨的方式意味着我不能使用GetFinalPathNameByHandle。例如,handler意味着win32 handler,(C++句柄类型)。据我所知,使用文件映射无法工作,因为文件可能没有内容。