我有一個本機C代碼,我在vC++ 2008中編譯代碼,並用'x64'編譯爲平臺在配置管理器,我有一個C#應用程序,它也編譯爲'x64'作爲平臺,它調用dll函數。我用Dllimport從下面的dll調用函數。在64位過程中的64位DLL Vista失敗 - 無法加載DLL'dllname':無法找到指定的模塊
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");
}
}
}
在運行該應用程序我得到如下錯誤的時間:
型「System.DllNotFoundException」未處理的異常發生在test.exe的
其他信息:無法加載DLL'mydll':指定的模塊找不到。 (來自HRESULT的異常:0x8007007E)
請問你能否幫我解決這個問題。如果我運行的DLL和應用程序的工作正常。但我需要從我的ASP頁面調用DLL函數,所以我需要DLL和64位應用程序。
其他信息:當我使用64位依賴walker檢查dll的依賴關係它顯示Kernel32.dll和NTDLL.DLL和mydll.dll是x64。
請幫我解決這個問題。
由於事先
你能解釋一下你的意思是當你說:「如果我同時運行DLL和applicaition其工作的罰款。」 [原文如此] – 2009-06-04 07:08:36
我的意思是如果DLL是32位的,我在x86平臺下運行的應用程序工作正常。 – 2009-06-04 07:15:06
我建議你嘗試ProcessMonitor - http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx - 看看究竟出了什麼問題。它會向您顯示加載庫和對應依賴關係的所有嘗試,並可能將您引導至解決方案。 – sharptooth 2009-06-04 09:08:49