我有一个示例应用程序,要在其中选择一个文件夹。为此,我使用了SHBrowseForFolder()。但是在Vista中将无法使用。所以我用了IFileOpenDialog。如果操作系统版本是XP,那么我正在使用SHBrowseForFolder(),否则我正在使用IFileOpenDialog。

我的应用程序在Vista中运行良好。但是它将无法在XP中启动。

请让我知道我需要做的任何事情。

更新:

我观察到这不是因为IFileOpenDialog接口。
我在浏览时使用SHCreateItemFromParsingName()API设置默认文件夹。
Shell32.dll在XP中不包含入口点。所以我正面临这个问题。

为了解决该问题,我使用LoadLibrary和GetProcAddres()来获取Proc地址。

现在,我可以运行该应用程序了。

最佳答案

我们的产品使用SHBrowseForFolder在Vista / 7上没有问题。您对该功能有什么代码? GetLastError()返回什么?也许我们可以在那里找到问题。

10-06 16:14