[英]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.