c ++ / cli DLL在Win 8.1下失败 [英] c++/cli DLL fails under Win 8.1

查看:351
本文介绍了c ++ / cli DLL在Win 8.1下失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我写了一个Win32 / net DLL,它在Win XP,Win7和8下运行正常,但在Win 8.1下失败。

i have written a Win32/net DLL, it works fine under Win XP, Win7 and 8 but under Win 8.1 it fails.

Dependency Walker说:找不到MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL
(user32.dll会调用它们)

Dependency Walker says: API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL not found (user32.dll will call them)

更改了8.1中的一些系统DLL(并忽略兼容性),使许多程序具有相同的问题。

Google means, MS changed some System-DLLs in 8.1 (and ignored compatibility), so that many programs have the same problem.

包含未找到文件的完整列表:

Full list with "file not found":

API-MS-WIN-CORE-KERNEL32-PRIVATE-L1-1-1.DLL
API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL
MSVCR120.DLL
API-MS-WIN-CORE-SHUTDOWN-L1-1-1.DLL
API-MS-WIN-SERVICE-PRIVATE-L1-1-1.DLL
EXT-MS-WIN-NTUSER-UICONTEXT-EXT-L1-1-0.DLL
IESHIMS.DLL

想法如何解决这个问题?

Does someone have a idea how to fix this?

推荐答案

依赖Walker的静态分析是不可靠的。事实上,Dependency Walker基于其静态分析报告与这些DLL的问题并不意味着这确实是您的问题。对于完美的可执行文件,在静态分析中描述的问题报告,但是执行得很好是正常的。

Dependency Walker's static analysis is not to be relied upon. The fact that Dependency Walker reports issues with those DLLs based on its static analysis does not mean that this is indeed your problem. It is normal for perfectly fine executables to report problems as you describe under static analysis, and yet execute perfectly well.

现在我正在查看Dependency Walker对我的应用程序的评估,我看到与您所做的完全相同的假设有问题的文件列表。但应用程序运行非常好。简单地说,你正在看一个假阳性。

Right now I'm looking at Dependency Walker's assessment of my application and I see the exact same list of supposedly problematic files as you do. But the application runs perfectly well. Simply put, you are looking at a false positive.

当升级操作系统时,Microsoft肯定没有忽视兼容性。

Microsoft has certainly not ignored compatibility when upgrading operating systems. On the contrary, it goes to extraordinary lengths to maintain good compatibility.

如果你想使用Dependency Walker调试本地DLL的依赖性问题,那么你真的需要使用它在动态模式下,使用配置文件菜单。这将告诉你哪些依赖在运行时加载失败,如果确实这是你的问题。但是,根据托管和非托管之间的平衡,可能是依赖者Walker不是工作的正确工具。

If you want to use Dependency Walker to debug dependency problems with native DLLs, then you really need to use it in dynamic mode, using the Profile menu. This will tell you which dependency fails to load at runtime, if indeed that is your problem. But depending on exactly where the balance is between managed and unmanaged, it may be that Dependency Walker is not the right tool for the job.

您的问题可能不是本机依赖项的问题。第一步是让你准确地诊断问题是什么。这超出了这个问题的范围,因为我们没有您遇到的错误的任何细节。

And your problem may not be an issue with native dependencies. The first step is for you to diagnose exactly what the problem is. That's beyond the scope of this question because we don't have any details of the errors that you encounter.

这篇关于c ++ / cli DLL在Win 8.1下失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆