Einstellung dllimport programmgesteuert in C#

Ich bin mit DllImport in meiner Lösung.

Mein problem ist, dass ich zwei Versionen der gleichen DLL gebaut, für 32 bit und eine für 64 bit.

Beide setzen die gleichen Funktionen mit identischen Namen und identischen Signaturen.
Mein problem ist, dass ich zwei statische Methoden, die aussetzen, und diese dann zur Laufzeit verwenden IntPtr Größe zu bestimmen, die richtige zu berufen.

private static class Ccf_32
{
    [DllImport(myDllName32)]
    public static extern int func1();
}

private static class Ccf_64
{
    [DllImport(myDllName64)]
    public static extern int func1();
}

Habe ich zu tun, weil myDllName32 und myDllName64 muss konstant sein und ich habe nicht gefunden, einen Weg, um es zur Laufzeit.

Hat jemand eine elegante Lösung, damit konnte ich loswerden der code-Duplizierung und die ständige IntPtr Größe überprüfen.

Wenn ich könnte den Namen der Datei, ich möchte nur noch einmal überprüfen, und ich konnte loswerden von einer Tonne wiederholt-code.

  • Keinen Sinn in der Auswahl zur Laufzeit, wenn der Unterschied ist die ganze Zusammenstellung.
InformationsquelleAutor Matt | 2009-08-23
Schreibe einen Kommentar