Установка dllimport программно в C #
я используюDllImport
в моем решении.
Моя проблема в том, что у меня есть две версии одной и той же библиотеки DLL, одна для 32-битной, а другая для 64-битной.
Они оба предоставляют одинаковые функции с одинаковыми именами и одинаковыми сигнатурами. Моя проблема заключается в том, что я должен использовать два статических метода, которые выставляют их, а затем во время выполнения использовать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
проверка размера.
Если бы я мог установить имя файла, мне пришлось бы проверять только один раз, и я мог бы избавиться от тонны повторяющегося кода.