■10310 / ) |
Re[5]: 【C#】DllImportで指定した関数が使えるかどうか |
□投稿者/ まひろ (3回)-(2007/11/15(Thu) 13:30:06)
|
> >>事後でよければ、DLL 関数を呼び出した時に例外(名称忘れました。ヘルプ他で調べてください) > >>が発生するので、それを catch して後処理する、とかです。 > > で駄目な理由を教えてもらえませんか?
処理速度も要求されていますし、 DllImportしたい関数が多く、毎回例外をcatchするよりも いいかなと考えているためです。
Dllがロードできるかどうかによって、 生成するインスタンスを変えようと思っています。
LoadLibraryで試したところ、うまくいきそうです。
interface IA { void DllFuncCall(); }
class A : IA { public void DllFuncCall() { } }
class AImpl : IA { [DllImport("hoge.dll", ・・・)] private static extern void DllFunc();
public void DllFuncCall() { DllFunc(); } }
IA GetIA() { if (LoadLibrary("hoge.dll") != IntPtr.Zero) return new AImpl; else return new A; }
|
|