我有一个示例应用程序,我想在其中选择一个文件夹。为此,我使用了SHBrowseForFolder()。但在Vista中它不会起作用。所以我使用了IFileOpenDialog。如果os版本是XP,我使用的是SHBrowseForFolder(),否则我使用的是IFileOpenDialog。
我的应用程序在vista中工作正常。但它无法在XP中启动。
请让我知道我需要做的任何事情。
更新:
我观察到它不是因为IFileOpenDialog接口。 我正在使用SHCreateItemFromParsingName()API在浏览时设置默认文件夹。 Shell32.dll在XP中不包含入口点。所以我面临这个问题。
要解决问题,我使用LoadLibrary和GetProcAddres()来获取Proc地址。
现在我可以运行该应用程序。
答案 0 :(得分:2)
我们的产品在Vista / 7上使用SHBrowseForFolder而没有问题。你有什么代码用于该功能? GetLastError()返回什么?也许我们可以在那里找到问题。
答案 1 :(得分:1)
对于它的价值,回答直接问题,XP中没有IFileOpenDialog,这就是它失败的原因。 XP的等效API是GetOpenFileName。