繁体   English   中英

Visual Studio:加载DLL时出错

[英]Visual Studio: Error loading DLL

我有一个C#dll,想将其导入stdafx.h(JNI的另一个DLL):import“ C:\\ Users \\ Marcus Tik \\ Documents \\ Visual Studio 2010 \\ Projects \\ DotNETSpy \\ DotNETSpy \\ bin \\ Release \\ DotNETSpy .dll”-> Visual Studio说:“加载DLL时出错。”

然后,我使用了Dependency Walker,它显示错误:“找到具有不同CPU类型的模块。”

C#DLL支持不同的CPU类型不是标准的吗? 我该如何解决我的问题? 提前感谢!

如果要检查.Net程序集上的依赖关系,请更好地使用CheckAsm而不是Dependency Walker(至少如果要查看托管代码依赖关系,则可能需要)。

您可以将托管的.Net库编译为“ AnyCPU”,因此通常不必担心32位/ 64位问题。 但是,也许您的DLL依赖于非托管DLL,如果非托管库是32位的,而您试图在64位计算机上运行它,则可能会引起麻烦。

将Build选项更改为x86,您可能正在尝试将32位OS dll导入到64位环境中。

检查此链接: 从x64 .NET访问x86 COM

如果您的操作系统是32位并且dll是专门为64位编译的,那么我认为您会得到结果。

试图使Debug版本正常工作是毫无意义的,您无法获得已部署的CRT库的调试版本。 当心Dependency Walker对现代可执行文件的用尽了,它对清单一无所知。 它将始终显示它们为丢失,即使它们没有丢失。

针对这种情况的两种解决方案是将其用作私有程序集或静态链接。 但是请记住,这仅用于调试,您不应分发这些文件,因为这再次是Microsoft的术语。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM