作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在编写一个应用程序,它将使用 API RegDeleteKey 或 RegDeleteKeyEx 递归地删除一些注册表项。困扰我的是 RegDeleteKeyEx 没有为 XP x64 Professional 定义,所以现在这个限制限制了我的应用程序。有什么方法可以同时使用从 XP x86 到 Win7 x64 的兼容 API?
最佳答案
为了让您的应用程序在不存在 RegDeleteKeyEx
的旧系统中运行,您需要避免静态链接到此 API。也就是说,您不直接使用此函数,而是通过 GetProcAddress
在运行时获取它的指针。如果成功,则 API 可用,您可以使用它(或者您可以检查操作系统版本)。
看看这里:How can I use RegDeleteKeyEx :
hAdvAPI32 = LoadLibrary(_T("AdvAPI32.dll"));
ASSERT(hAdvAPI32 != NULL);
_RegDeleteKeyEx = (PFN_RegDeleteKeyEx)GetProcAddress(hAdvAPI32 , "RegDeleteKeyEx");
ASSERT(_RegDeleteKeyEx != NULL);
RegDeleteKey
所有目标平台都存在,可以直接使用。
关于windows - RegDeleteKey 和 RegDeleteKeyEx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12797905/
我正在编写一个应用程序,它将使用 API RegDeleteKey 或 RegDeleteKeyEx 递归地删除一些注册表项。困扰我的是 RegDeleteKeyEx 没有为 XP x64 Profe
我正在尝试为 32 位和 64 位操作系统实现注册表项的递归删除。由于 RegDeleteKeyEx 未针对低于 XP x64 Professional 的操作系统定义,因此我尝试间接使用该函数。 问
我是一名优秀的程序员,十分优秀!