|
分類:[C#]
初めて質問する、ましゃまると申します。 色々、調べてみたのですが、よくわかりませんでした。
開発環境: OS Windows VISTA(64ビット) VisualStudio2005
現在、VC++2003で作成されたdllを、VB6.0から呼出しているプログラムを、 64ビットVISTA化する作業を行っています。
それに伴い、DLLは VC++2005で作成しなおし、VC#2005から呼出すことになりました。
ちゃんと、DLLが呼出せるかというテストを行ったところ、BadImageFormatExceptionがスローされてそこで行き詰ってしまいました。
dllのコード
_declspec(dllexport) long _stdcall dllSample() { return 1; }
C#のコード
using System; using System.Runtime.InteropServices;
namespace TEST { class DllTest { [DllImport("DllTest.dll", EntryPoint="dllSample")] public static extern long dllSample(); public long dllSampleTest() { long ret=dllSample();//*ここでBadImageFormatExceptionがスローされます。 return ret; } } }
ただ、DLLを呼出すことが出来るかどうかのテストで、こんな感じで作ってみたのですが、 dllSampleを呼んだ段階で、BadImageFormatExceptionがスローされます。
DLLの場所は正しく、DefファイルにDllSampleとエントリーしています。
user32.dllにあるようなAPIは同じようにして呼出せたのですが、どうしても、作成したdllが呼出せません。
お手数をおかけいたしますが、教えていただけないでしょうか。 よろしくお願いします。
ましゃまる
|