.net 4.0 K32EnumProcessModules导致;无法加载由{dll}导入的过程";

.net 4.0 K32EnumProcessModules导致;无法加载由{dll}导入的过程";,.net-4.0,dll,dependency-walker,windows-kernel,.net 4.0,Dll,Dependency Walker,Windows Kernel,我有一个应用程序,它依赖于组织中其他人构建的几个库,其中一个库已经停止工作。我在命令行中遇到此错误: Unhandled Exception: System.IO.FileLoadException: A procedure imported by 'XXX.dll' could not be loaded. 我打开了Dependency Walker,试图找出问题的根源,尽管我应该说我是Dependency Walker的新手,我真的不知道自己在做什么。以下是我在日志窗口中看到的内容: Er

我有一个应用程序,它依赖于组织中其他人构建的几个库,其中一个库已经停止工作。我在命令行中遇到此错误:

Unhandled Exception: System.IO.FileLoadException: A procedure imported by 'XXX.dll' could not be loaded.
我打开了Dependency Walker,试图找出问题的根源,尽管我应该说我是Dependency Walker的新手,我真的不知道自己在做什么。以下是我在日志窗口中看到的内容:

Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
这似乎很简单,除了:

  • 由于我不熟悉DW,我似乎无法找到这个错误实际上指的是什么模块
  • 旧版本的应用程序附带的DLL仍然有效,在Dependency Walker中显示了相同的内容
我能找到的新旧DLL之间的唯一区别是,新DLL中的KERNEL32.DLL显示为红色,函数K32EnumProcessModules显示为红色(未导出)。对于旧DLL,此函数根本不显示(绿色或其他)

总结到目前为止:一个DLL工作,另一个不工作;两者在Dependency Walker中都显示为“坏”,但只有一个函数K32EnumProcessModules显示为不好。我不知道这个函数是否是导致“未解析导入”错误的原因,我想找出原因

我认为应用程序中唯一可能导致这种情况的变化是将运行时从.NET2.5升级到.NET4。此升级是出于与此DLL无关的原因而进行的,不应影响它:此DLL不会对高于2.5的.NET组件进行任何调用,并且我所在组织中使用同一库的其他人员报告说,它可以与.NET 4配合使用

我意识到我提供的信息很少,主要是因为我不确定哪些信息有助于解决此问题。如果您希望我执行一些测试以了解更多信息,请告诉我。

可能与此相关 定义PSAPI_VERSION=1可能会有所帮助