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.