gpt4 book ai didi

windows - 如何在VC++ 6.0 转换的VC++ 2010 项目中使用iFileDialog?

转载 作者:可可西里 更新时间:2023-11-01 13:25:45 24 4
gpt4 key购买 nike

我可以像这样在 VC++ 2010 应用程序中使用 FileSaveDialog(通用项目对话框):

IFileDialog *pFileDialog;
HRESULT hr = CoCreateInstance(CLSID_FileSaveDialog, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pFileDialog));

但是当我将此代码放入已从 VC++ 6.0 转换为 VC++ 2010 的项目中时,出现以下错误:

"error C2787: 'IFileDialog' : no GUID has been associated with this object"

我还在 IID_PPV_ARGS 宏下看到一个红色波浪线和 float 错误:

"operand of _uuidof must have a class or enum type for which _declspec(uuid('...')) has been specified"

我没有在这两个项目中使用公共(public)语言运行时支持 (/clr)。

如何将 GUID 与我的对象相关联?

最佳答案

问题是我设置了一个针对 Win XP 操作系统的编译器标志。这就是为什么没有定义在 Vista 中引入的功能。

我有 _WIN32_WINNT = 0x0501 (WinXP)。当我将其更改为 0x0600 (Vista) 时,IFileDialog 已定义。

马克,你关于查看 IFileDialog 定义的建议让我找到了原因。它引导我到 ShObjIdl.h 文件,但是定义 IFileDialog 的部分是灰色的,引导我到 #if (NTDDI_VERSION >= NTDDI_VISTA) 条件。

谢谢!

关于windows - 如何在VC++ 6.0 转换的VC++ 2010 项目中使用iFileDialog?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5346451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com