Как выборочно загрузить неуправляемую Delphi. dll (32-битную или 64-битную) в соответствии с аркой хост-системы и вызвать ее функции из проекта C#?
Привет,
Я новичок в C# и в настоящее время борюсь с тем, как я могу выборочно загружать неуправляемый файл .DLL в своей программе. Проблема заключается в следующем:
Программа C# должна иметь возможность определять разрядность системы, на которой она работает, загружая правильный файл. dll (32-или 64-битная версия)
MyDLL32bit.dll
MyDLL64bit.dll
Библиотеки dll имеют разные имена, чтобы отразить битовую ширину.
. Программа должна вызывать функции в любой версии .dll, которая загружается (некоторые принимают аргументы, а другие просто возвращают значения). У меня нет доступа к библиотеке dll. Однако я знаю имена функций, параметры, которые они принимают, и значения, которые они возвращают.
Я искал это, и некоторые люди предлагают использовать
[DllImport("MyDLL32bit.dll")]
public static extern int doSomething();
Но могу ли я закодировать программу, чтобы выбрать правильную dll (32-битную или 64-битную) и вызвать функции на правильной версии dll?
Наконец, код должен быть как можно более независимым. Я имею в виду, что если все это можно сделать на C# без необходимости использования Windows API, то это было бы предпочтительнее.
Любая помощь будет очень признательна.
Что я уже пробовал:
Я заглядывал на разные интернет-форумы, такие как этот, и пытался использовать решение Dllimport. Имеющаяся информация очень противоречива и совсем не легка для восприятия.