我正在编写一个应用程序,它将使用 API RegDeleteKey或RegDeleteKeyEx递归删除一些注册表项。困扰我的是RegDeleteKeyEx没有为低于XP x64 Professional定义,所以现在这个限制限制了我的应用程序。有什么方法可以让我同时使用从 XP x86 到 Win7 x64 的两种 API?
user1696837
问问题
2382 次
1 回答
0
为了让您的应用程序在RegDeleteKeyEx
不存在的旧系统中运行,您需要避免静态链接到此 API。也就是说,您不直接使用此函数,而是在运行时通过GetProcAddress
. 如果成功,则 API 可用并且您可以使用它(或者您可以检查操作系统版本)。
看看这里:如何使用 RegDeleteKeyEx:
hAdvAPI32 = LoadLibrary(_T("AdvAPI32.dll"));
ASSERT(hAdvAPI32 != NULL);
_RegDeleteKeyEx = (PFN_RegDeleteKeyEx)GetProcAddress(hAdvAPI32 , "RegDeleteKeyEx");
ASSERT(_RegDeleteKeyEx != NULL);
RegDeleteKey
可以直接使用,因为它存在于所有目标平台中。
于 2012-10-09T10:25:44.617 回答