我的应用程序支持XP及以上版本,并且我尝试在Vista及更高版本下运行时使用CFileDialog更新的接口(即GetIFileOpenDialog())(以尊重这些接口的限制)。
所以我检查操作系统版本,并尝试使用这些接口(如果适用),并使用旧的XP方法。问题是在XP下运行我得到LoadLibrary失败(代码在DLL中),所以似乎有一些早期绑定正在进行。只要我注释掉使用这些接口的代码,LoadLibrary就会成功。
是否可以使用在XP下运行的Vista功能来使用CFileDialog代码,即使代码未被调用?
由于
答案 0 :(得分:0)
您需要使用LoadLibrary()
手动加载相关的库,(它不会再次加载,但您需要很好的处理),然后使用GetProcAddress()
来获取函数的地址(GetIFileOpenDialog
)。如果您只是直接使用Vista功能,它将无法在XP上加载,因为它可以直接绑定该功能。