Programowe ustawianie dllimport w C #

ja używamDllImport w moim rozwiązaniu.
Moim problemem jest to, że mam dwie wersje tego samego DLLa, zbudowanego dla 32-bitowego i drugiego dla 64-bitowego.

Oba ujawniają te same funkcje o identycznych nazwach i identycznych podpisach. Mój problem polega na tym, że muszę użyć dwóch statycznych metod, które ujawniają te, a następnie w czasie wykonywaniaIntPtr rozmiar, aby określić poprawny, który należy wywołać.

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

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

Muszę to zrobić, ponieważmyDllName32 imyDllName64 musi być stała i nie znalazłem sposobu na ustawienie go w czasie wykonywania.

Czy ktoś ma eleganckie rozwiązanie tego problemu, więc mogę pozbyć się duplikacji kodu i stałejIntPtr sprawdzanie rozmiaru.

Gdybym mógł ustawić nazwę pliku, musiałbym tylko sprawdzić raz i mógłbym pozbyć się mnóstwa powtórzonego kodu.

questionAnswers(9)

yourAnswerToTheQuestion