【问题标题】:How to populate folder browser in a Win32 Application如何在 Win32 应用程序中填充文件夹浏览器
【发布时间】:2016-02-21 08:07:52
【问题描述】:

我有这个 win32 应用程序,它将成为某些文件的转换器。我想要的是一个简单的文件夹浏览器,您可以在其中选择输入文件和转换文件的目标。我可以通过拖放导入,奇怪的是这比这样做更简单。我尝试将BROWSEINFOSHBrowseForFolder 一起使用,但使用#include <shlobj.h> 因为它给了我很多错误。有没有其他方法可以通过文件夹浏览获取文件路径?它在一个对话框窗口中,使用 windows 8 和 VS 2013

错误:将#include <shobjidl.h> 用于IFileDialog 时,该头文件中出现语法错误。没有LPTBBUTTONSBHIMAGELIST 的标识符。

【问题讨论】:

  • 请指定您的应用程序将支持哪些 Windows 版本。某些解决方案仅适用于 Vista 和更新版本。
  • 对不起,现在更新了。视窗 8
  • 显而易见的解决方案是解决您遇到的错误。

标签: c++ visual-studio winapi browser directory


【解决方案1】:

在所有其他包含之前使用#include <shobjidl.h>,而不是最后解决我的编译错误并使用IFileDialogworked!

【讨论】:

    【解决方案2】:

    由于不需要支持XP,可以使用IFileDialog接口。有关详细示例,请参见:

    https://msdn.microsoft.com/en-us/library/windows/desktop/bb776913(v=vs.85).aspx

    上面的链接包含一个名为BasicFileOpen的函数的完整实现,这正是你所需要的。

    【讨论】:

    • How do I write a good answer?: "为链接提供上下文:鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在. 始终引用重要链接中最相关的部分,以防目标站点无法访问或永久离线。”
    • 这是正确的包含吗? “#include ”它仍然给我与“shlobj.h”相同的错误
    • @Rasmus: 没有人知道,"it" 是什么,它给了你错误,或者 "same errors" 是什么,那个你从来没有告诉过我们。
    • 只阅读这个答案,它有多少价值,“万一目标站点无法访问或永久离线”? MSDN 过去进行过多次重组,链接经常指向“找不到内容”错误页面。
    猜你喜欢
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    相关资源
    最近更新 更多