我正在开发一个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);
}
答案 0 :(得分:1)
当我尝试访问图片库中的图像时,我得到了E_ACCESSDENIED
是的,这是一个功能。您需要在应用程序的清单中声明picturesLibrary功能才能访问图片库。
有关详细信息,请参阅this post。