【问题标题】:Windows 8 store app C++ file accessWindows 8 商店应用程序 C++ 文件访问
【发布时间】:2012-11-24 02:10:00
【问题描述】:

我正在开发一个 Windows 8 商店应用程序,该应用程序使用 C# 作为 GUI 和 C++(作为同一解决方案中的另一个项目,设置为制作 DLL)进行图像处理,并试图打开 .png 图像从 C# 指定的路径中的 C++。当图像位于 Apps 资产文件夹(即.\\Assets\\image.png)中时,这工作正常,但是当我尝试访问图片库中的图像时,我在 C++ 代码中得到E_ACCESSDENIED。我已经在 c# 项目清单中指定了文档和图片库功能,但 C++ 仍然被拒绝访问。任何人都知道如何授予 C++ 代码对某些文件夹的访问权限?

例如调用 wincodec.h 中定义的函数,如果 'filename' 类似于 "C:\Users\Name\Pictures\image0.png" hr 将得到结果E_ACCESSDENIED

if (SUCCEEDED(hr))
{
    hr = pFactory->CreateDecoderFromFilename(
        filename,
        NULL,
        GENERIC_READ,
        WICDecodeMetadataCacheOnDemand,
        &pDecoder);


}

【问题讨论】:

  • 您能否发布用于获取路径的代码、路径是什么以及您尝试打开文件的方式?
  • 您应该使用异步模式打开文件,MSDN 中有许多 Windows 8 示例告诉您如何打开图像。请搜索关键字 CreateDecoderFromStream。

标签: c# c++ file-io windows-8


【解决方案1】:

当我尝试访问图片库中的图像时,我得到 E_ACCESSDENIED

是的,这是一项功能。您需要在应用程序的清单中声明图片库功能,以允许访问图片库。

更多详情请见this post。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    相关资源
    最近更新 更多