私はDllImport
自分のソリューションで使用しています。
私の問題は、同じDLLの2つのバージョンがあり、1つは32ビット用に、もう1つは64ビット用にビルドされていることです。
これらは両方とも、同じ名前と同じ署名を持つ同じ関数を公開します。私の問題は、これらを公開する2つの静的メソッドを使用し、実行時にIntPtr
サイズを使用して、呼び出す正しいメソッドを決定する必要があることです。
private static class Ccf_32
{
[DllImport(myDllName32)]
public static extern int func1();
}
private static class Ccf_64
{
[DllImport(myDllName64)]
public static extern int func1();
}
これを行う必要があるのは、一定myDllName32
でmyDllName64
なければならず、実行時に設定する方法が見つからないためです。
IntPtr
コードの重複と定数サイズのチェックを取り除くことができるように、誰かがこれに対するエレガントなソリューションを持っていますか?
ファイル名を設定できれば、一度チェックするだけで、大量の繰り返しコードを取り除くことができます。