[英]Unable to load 64-bit dll Error in C#
我有64位c ++ ddl,必须在我的c#应用程序中使用。 我用它像
[DllImport("sampleDll.dll",
EntryPoint = "sampleFunction",
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall)]
public static extern int sampleFunction(char[] ch, int i);
但是当我尝试运行该应用程序时,它显示错误为
“无法加载DLL'sampleDll.dll':找不到指定的模块。”
Iam使用64位操作系统。 我尝试将dll复制到System32文件夹中
但是我仍然遇到相同的错误。
请让我知道此问题的解决方法........
我将假设您的C#进程是64位。 如果是32位进程,则无法加载64位DLL,这就是失败的原因。
如果将文件复制到system32
则将在其中查找64位进程。 如果您复制的文件名为sampleDll.dll
,则程序将找到它。 所以,如果你看到
Unable to load DLL 'sampleDll.dll': The specified module could not be found.
问题不在于无法sampleDll.dll
,而是无法解决其依赖性。 对此的最常见解释是,您需要安装sampleDll.dll
依赖的C运行时。 请查阅此DLL的文档,以了解其依赖性。 如果它是您自己创建的DLL,则您知道构建它时使用的内容,并且可以自己识别依赖项。
最后,我要强调的是,您不应将文件复制到system32
目录中。 那属于系统,您不应触摸它。 DLL驻留的最佳位置是与加载该DLL的可执行文件相同的目录。
将您的dll放在部署应用程序的文件夹中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.