c++ - 如何创建文件路径可以像磁盘一样访问的虚拟文件系统

标签 c++ windows filesystems

我需要在内存或磁盘上创建 FileSystem 类型的东西,它可以像磁盘上的文件一样访问,它的路径可以在 fopen() 等函数中使用。

详细信息: 我正在使用 AddFontResourceEx 函数在应用程序中加载字体。由于此功能需要文件路径,因此文件需要存在于磁盘上。但我要求用户不能访问/查看字体文件。

我尝试了 AddFontMemResourceEx 函数,但加载的字体不可枚举,因此用户无法在应用程序中看到字体。我也尝试过一些创建 VFS 的库,但它们像数据库一样工作,即你可以创建文件/目录并访问它们。但不能在 AddFontResourceEx 或任何其他函数中使用它们的文件路径。

是否存在某种方法可以让我在内存或磁盘上创建一个虚拟文件系统,它可以通过我的应用程序访问,我可以在这个创建的虚拟文件系统上写/读文件,它的文件路径可以被 AddFontResourceEx 函数使用.

最佳答案

这真的行不通。是的,您可以添加一个“虚拟”文件系统。但它要么对用户 X 可见,要么不可见。 Windows 上的访问控制基于每个用户,而不是每个程序。因此,如果用户 X 可以在应用程序 A 中看到该字体,他也可以在应用程序 B 中看到它 - 即使 B 是 Explorer.EXE。

关于c++ - 如何创建文件路径可以像磁盘一样访问的虚拟文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10933322/

相关文章:

c++ - SFINAE canAdd模板问题

c++ - 在if语句C++中意外中断

python - 禁用控制台窗口的关闭按钮

windows - Win 2008 R2 64bit VFP 计划任务问题

linux - 文件复制时间变化

git - 如何从 NTFS(桌面)推送到 FAT32(USB)?

C++ 类重载 : is it possible to make compiler see which one to use based on template?

c++ - 来自 sql server timestamp_t 的 boost ptime 关闭了几分钟。我做错了什么?

c++ - CreateProcess,第一个参数问题

c# - 在繁忙的环境中可靠地保存文件 (File.Replace)