c#中无法加载64位dll错误
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':无法找到指定的模块。"
我使用64位操作系统。我尝试通过将dll复制到System32文件夹
但是我仍然得到相同的错误。
请让我知道这个问题的解决方法........
我假设你的c#进程是64位的。如果它是一个32位的进程,那么你不能加载64位的DLL,这就是失败的原因。
如果您将文件复制到system32
,那么64位进程将在那里查找。如果您复制的文件名为sampleDll.dll
,那么您的程序将找到它。所以,如果你看到
问题不在于无法定位sampleDll.dll
,而在于无法解决其依赖关系。最常见的解释是,您需要安装sampleDll.dll
所依赖的C运行时。请查阅该DLL的文档,了解它的依赖项。如果它是您自己创建的DLL,那么您就知道在构建它时使用了什么,并且可以自己识别依赖关系。
最后,我要强调您不应该将文件复制到system32
目录中。那是属于系统的,你不应该碰它。DLL的最佳驻留位置是与加载它的可执行文件在同一目录中。
将dll放在部署应用程序的同一文件夹中。
相关文章:
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- 从C/C++(Win64)中的内存加载64位DLL
- 在64位DLL中访问函数的错误
- Windows无法看到64位dll
- 64位DLL中的CreateThread不起作用
- 如何在 64 位 DLL 中查找导出函数的地址?
- Visual Studio将非托管的64位DLL复制到SysWOW64,而不是System32
- VS2012正在查找64位dll而不是32位
- 在我的项目中调用 64 位 Dll,32 位 VC++
- 使用代码洞穴注入64位DLL
- 使用64位DLL与32 Borland c++ Builder
- 如何生成 64 位.dll哪个 gcc 编译器或其他。无法在 AMD 64 位平台上加载 IA 32 位.dll
- 无法加载64位dll
- c#中无法加载64位dll错误
- 在32位DLL中找不到入口点.使用64位DLL
- 为64位dll创建32位包装器.这可能吗?
- 使用c++从32位进程访问64位dll
- 如何从64位进程或64位dll访问32位dll
- Win32应用程序和错误0xC0000007b由于64位DLL
- 64 位 DLL 模块与文件不匹配