【问题标题】:Procedure entry point RegCloseKey not found in dynamic link library kernel32.dll在动态链接库 kernel32.dll 中找不到过程入口点 RegCloseKey
【发布时间】:2011-10-19 03:37:49
【问题描述】:

我有一个用 VC++ 编写的程序,我正在尝试将它安装在 Windows server 2008 上。

最初它给出了有关 api-ms-win-core-xx-l1.dll 文件丢失的错误。因此,我将 Windows 7 dll 复制到了应用程序文件夹中。但是,现在它给出了一个错误说

“动态链接库kernel32.dll中找不到程序入口点RegCloseKey”

我安装了最新的 VC++ 可再发行组件,但它似乎仍然无法正常工作。我必须自己替换 kernel32.dll 文件吗?

【问题讨论】:

  • 我不建议更换 kernel32.dll...我不相信您可以...但是如果您成功了,我认为您的服务器会崩溃并燃烧起来!

标签: c++ visual-studio-2008 visual-c++ dll windows-server-2008


【解决方案1】:

如果您的应用程序是 32 位的,您需要安装 32 位的 VC Redistribute,对于 64 位也是如此。请记住,重要的是应用程序的位数,而不是操作系统的位数。

【讨论】:

    【解决方案2】:

    所以,当我为 Windows 2003 平台编译程序时(使用适用于 Windows 2003 的库),它在这台机器上运行良好。

    我尝试使用 Windows 7 库,因为它类似于 Windows server 2008。

    【讨论】:

      【解决方案3】:

      请不要将系统文件从一台机器复制到另一台机器。它将以灾难告终。 api-ms-win-core* 文件属于此类。 VC++ 可再发行组件和您的程序文件应该足够了。如果这仍然失败,然后发布你得到的错误。

      【讨论】:

      • 好的,我从应用程序文件夹中删除了所有 api-ms-win* dll。我卸载了 vc++ redistributables,只运行了 msi 附带的 vc_redistx86。我收到错误消息“未找到 api-ms-win-errorhandling-l1-1-0.dll。重新安装应用程序可能会解决此问题”
      • 而且system32文件夹中也不存在。
      • 你能在你的可执行文件中使用 Dependency Walker (dependencywalker.com) 并发布它的依赖树吗?
      • 如何发布依赖树?作为截图?
      • 如果合适,截图很好。如果没有,Dependency Walker 有一个“保存”选项,可以将其程序视图导出到 TXT 文件(和其他格式)。
      猜你喜欢
      • 2012-09-09
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      • 2017-08-01
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多