私はネイティブCコードを持っていましたが、vC++ 2008でコードをコンパイルし、 'x64'私はプラットフォームとして 'x64'でコンパイルされ、dll関数を呼び出しているC#アプリケーションを持っています。私は以下のようにdllimportを使用してDLLから関数を呼び出しました。64ビットプロセスで64ビットのDLLが見つかりません - DLL 'dllname'を読み込めません:指定されたモジュールが見つかりませんでした
型「System.DllNotFoundException」の未処理の例外がTEST.EXE
で発生しました追加情報:私は以下のようにエラーを取得していたアプリケーションを実行している時の
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");
}
}
}
にできません。 load DLL 'mydll':指定されたモジュールが見つかりませんでした。 (HRESULTからの例外:0x8007007E)
これを解決するために私を助けてください。私は、DLLとアプリケーションの両方を動作させる場合は、正常に動作します。しかし私は私のASPページから呼び出されるdll関数が必要なので、私は64ビットとしてdllとアプリケーションの両方が必要です。
追加情報:依存関係ウォーカーの64ビット版依存関係をチェックしたところ、Kernel32.dllとNTDLL.DLLとmydll.dllがx64であることがわかりました。
私にこれを手伝ってください。事前に
おかげで、
// HKEY_LOCAL_MACHINEに存在する「私はDLLとapplicaitionその作業罰金の両方を実行する場合。」 –
dllが32ビットで、アプリケーションがx86プラットフォームで動作していればうまく動作します。 –
ProcessMonitor(http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx)を試して、正確に何がうまくいかないかを確認することをお勧めします。ライブラリをロードしようとするすべての試行とそれに対応する依存関係が表示され、ソリューションにつながる可能性があります。 – sharptooth