CFileDialog支持XP和Vista

时间:2013-07-22 20:31:33

标签: c++ windows-xp windows-vista cfiledialog

我的应用程序支持XP及以上版本,并且我尝试在Vista及更高版本下运行时使用CFileDialog更新的接口(即GetIFileOpenDialog())(以尊重这些接口的限制)。

所以我检查操作系统版本,并尝试使用这些接口(如果适用),并使用旧的XP方法。问题是在XP下运行我得到LoadLibrary失败(代码在DLL中),所以似乎有一些早期绑定正在进行。只要我注释掉使用这些接口的代码,LoadLibrary就会成功。

是否可以使用在XP下运行的Vista功能来使用CFileDialog代码,即使代码未被调用?

由于

1 个答案:

答案 0 :(得分:0)

您需要使用LoadLibrary()手动加载相关的库,(它不会再次加载,但您需要很好的处理),然后使用GetProcAddress()来获取函数的地址(GetIFileOpenDialog)。如果您只是直接使用Vista功能,它将无法在XP上加载,因为它可以直接绑定该功能。