windows - RegDeleteKey 和 RegDeleteKeyEx

标签 windows winapi registry

我正在编写一个应用程序,它将使用 API RegDeleteKeyRegDeleteKeyEx 递归地删除一些注册表项。困扰我的是 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/

相关文章:

windows - 如何在没有ActiveX的情况下直接在网页上安装谷歌浏览器

python - 使用 python win32 api 的 Windows 打印机对话框

c++ - C++中的切换栈

c - 如何使用C从注册表中读取存储在Key中的值

asp.net - COM 异常 - TYPE_E_CANTLOADLIBRARY?

python - OpenCV imshow窗口太大-图像模糊

windows - 使用批处理脚本等待标题中包含某些文本的窗口

windows - 在 Windows 资源管理器上下文菜单中添加分隔符(不在子菜单中)

c++ - 如何在 Win32 应用程序中控制焦点?

registry - HKEY_LOCAL_MACHINE\SOFTWARE\Classes 与 HKEY_CLASSES_ROOT