簡體   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