0

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

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

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

谢谢

4

1 回答 1

0

您需要使用 , 手动加载相关库LoadLibrary()(不会再次加载,但您需要一个好的句柄),然后使用GetProcAddress()( ) 获取函数的地址GetIFileOpenDialog。如果您只是直接使用Vista 功能,它不会在XP 上加载,因为正如您所说,它会直接绑定该功能。

于 2013-07-22T20:35:27.503 回答