【发布时间】:2011-01-06 01:22:37
【问题描述】:
我想模拟一个文件而不将其写入磁盘。我的可执行文件末尾有一个文件,我想将其路径提供给 dll。当然,既然它没有真正的路径,我只好伪造它。
我首先尝试在 Windows 下使用命名管道来做到这一点。这将允许像 \\.\pipe\mymemoryfile 这样的路径,但我无法使其工作,而且我不确定 dll 是否支持这样的路径。
其次,我找到了 CreateFileMapping 和 GetMappedFileName。它们可以用来模拟另一个片段中的文件吗?我不确定这就是这个 API 的作用。
我正在尝试做的似乎类似于 boxedapp。关于他们如何做到这一点的任何想法?我想这有点像 API 拦截(像 Detour ),但这将是很多工作。还有其他方法吗?
为什么?我对这个特定的解决方案很感兴趣,因为我想隐藏数据并为了只分发一个文件的好处,但也因为令人讨厌的原因使它以这种方式工作;) 我同意将数据复制到临时文件是可行的,并且是一种更简单的解决方案。
【问题讨论】:
标签: c++ windows winapi named-pipes