- - PR -
c++のDLL関数を呼ぶとDllNotFoundExceptionが発生する
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-01-06 15:47
c++(VC6)で作成したDLL関数を以下のようにDllImport属性で宣言して、使用するとDllNotFoundExceptionが発生してしまいます(同一クラス内で使用)。
[System.Runtime.InteropServices.DllImport("HOGEHOGE.dll")] private static extern int HogeFunc(IntPtr hInst, IntPtr hWnd, int hoge); Dllを置く位置は system32フォルダや binフォルダを試したですが、駄目でした。 どこにDllを置けば動作するのでしょうか?それとも、何か根本的に勘違いをしているのでしょうか…。よろしくお願いします。 環境 Windows Server 2003 IIS 6.0 VisualStudio.NET 2003 Webアプリ(C#) | ||||
|
投稿日時: 2006-01-06 16:03
hogehoge.dll が必要としている、別の dll が無い(=見つからない)のでは? | ||||
|
投稿日時: 2006-01-06 16:07
Warning が発生したままで固めた DLL だと呼び出されない場合があります。
_________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2006-01-06 16:19
こんにちは。
たしかに、その可能性が高そうですね。 Visual Studio付属ツールの"Dependency Walker"で、hogehoge.dllの依存関係を調べてみてはどうですか。 VS.NET2003だと次のパスに"Dependency Walker"の実行ファイルがあります。 C:\\Program Files\\Microsoft Visual Studio .NET 2003\\Common7\\Tools\\Bin\\Depends.Exe | ||||
|
投稿日時: 2006-01-06 18:00
ご指摘の通り、DLLが不足していました。
ありがとうございました。 (Dependency Walkerは、私のPCにはなぜかありませんでした) |
1