繁体   English   中英

64位进程Vista中的64位dll失败-无法加载DLL'dllname':找不到指定的模块

[英]64 bit dll in 64 bit process Vista fails - Unable to load DLL 'dllname': The specified module could not be found

我有一个本机C代码,我在vc ++ 2008中编译了该代码,并在配置管理器中以“ x64”作为平台对其进行了编译,还有一个c#应用程序,该应用程序也以“ x64”作为平台进行了编译,它调用了dll函数。 我已经使用Dllimport从dll中调用函数,如下所示。

using System.Runtime.InteropServices;

namespace test            
{    
public partial class Form1 : Form                                                     
  {

      [DllImport("mtest", CharSet = CharSet.Ansi)]
        public extern static void e_path(string path);

        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("test");
            swe_set_ephe_path("E:\\Gan");
        }
    }
}

在运行应用程序时,出现以下错误:

test.exe中发生了'System.DllNotFoundException'类型的未处理异常

附加信息:无法加载DLL“ mydll”:找不到指定的模块。 (来自HRESULT的异常:0x8007007E)

能否请您帮我解决这个问题。 如果我同时运行dll和applicaition,则其工作正常。 但是我需要从我的ASP页面中调用dll函数,因此我需要dll和应用程序均为64位。

其他信息:当我使用64位依赖关系行程序检查dll的依赖关系时,它表明Kernel32.dll和NTDLL.DLL以及mydll.dll是x64。

这个你能帮我吗。

提前致谢,

在x64平台上,SYSWOW64目录包含用于32位应用程序的文件。 您将在注册表中找到相同的区别,其中SYSWOW64包含x32应用程序的条目。 问候

注释:包含32位条目的注册表项是Wow6432Node,位于// HKEY_LOCAL_MACHINE中

问题在于您的dll依赖于其他某个dll,并且无法找到其他dll,因为它位于加载程序无法搜索它的某个路径上,或者该dll不是64位。

暂无
暂无

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

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