无法在C中加载64位dll错误 我有64位C++ + DDL,我必须在C应用程序中使用。我用得很好 [DllImport("sampleDll.dll", EntryPoint = "sampleFunction", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int sampleFunction(char[] ch, int i);

无法在C中加载64位dll错误 我有64位C++ + DDL,我必须在C应用程序中使用。我用得很好 [DllImport("sampleDll.dll", EntryPoint = "sampleFunction", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)] public static extern int sampleFunction(char[] ch, int i);,c++,visual-studio-2010,c#-4.0,visual-c++,dllimport,C++,Visual Studio 2010,C# 4.0,Visual C++,Dllimport,但当我尝试运行应用程序时,它显示错误为 无法加载DLL“sampleDll.DLL”:找不到指定的模块 Iam使用64位操作系统。我尝试将dll复制到System32文件夹中 但我还是犯了同样的错误 请告诉我此问题的解决方法……。将dll放在部署应用程序的同一文件夹中 将dll放在部署应用程序的同一文件夹中 我假设您的C进程是64位的。如果是32位进程,则无法加载64位DLL,这就是失败的原因 如果您将文件复制到system32中,则64位进程将在那里查看。如果复制的文件名为sampleDll.

但当我尝试运行应用程序时,它显示错误为

无法加载DLL“sampleDll.DLL”:找不到指定的模块

Iam使用64位操作系统。我尝试将dll复制到System32文件夹中

但我还是犯了同样的错误


请告诉我此问题的解决方法……。

将dll放在部署应用程序的同一文件夹中

将dll放在部署应用程序的同一文件夹中

我假设您的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最好驻留在加载它的可执行文件所在的目录中。

我假设您的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的最佳驻留位置是与加载它的可执行文件位于同一目录中。

只需添加,您也可以将64位DLL c:\windows\SysWOW64添加到此文件夹中。虽然你不应该那样做@不,那是错的。64位系统目录名为system32,32位系统目录名为SysWOW64。我知道有点困惑。因此,64位进程只能看到64位系统目录,而32位进程只能看到32位系统目录。文件系统重定向器解决了这个问题。糟糕!,我完全混淆了这两个文件夹。我会把这句话作为对其他人的提示:嗨。。。我已尝试将dll添加到应用程序所在的同一目录中。但还是同样的错误。请发送有关如何查找dll依赖项的链接……dll是从哪里获得的?只需添加,您也可以将64位dll c:\windows\SysWOW64添加到此文件夹。虽然你不应该那样做@不,那是错的。64位系统目录名为system32,32位系统目录名为SysWOW64。我知道有点困惑。因此,64位进程只能看到64位系统目录,而32位进程只能看到32位系统目录。文件系统重定向器解决了这个问题。糟糕!,我完全混淆了这两个文件夹。我会把这句话作为对其他人的提示:嗨。。。我已尝试将dll添加到应用程序所在的同一目录中。但还是同样的错误。你能发送任何关于如何找到dll依赖项的链接吗…你从哪里得到dll的?