Есть две DLL-ки из которых нужно импортировать функции с одинаковым именем. Понимаю что нужно использовать DLL-ки с разными псевдонимами с помощью "extern alias", но не могу понять как.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Здравствуйте, OldHand, Вы писали:
OH>Есть две DLL-ки из которых нужно импортировать функции с одинаковым именем. Понимаю что нужно использовать DLL-ки с разными псевдонимами с помощью "extern alias", но не могу понять как.
extern alias
1. В свойства референса установить нужный (нужные) алиасы для сборки. Например MyAsm1.
2. В файле кода (до любых namespace) пишем:
extern alias MyAsm1;
Теперь типы/нэймспейсы из этой собрки будут доступны
MyAsm1::MyNamespace.MySubNamespace.MyClass
.
Здравствуйте, fddima, Вы писали:
F> 1. В свойства референса установить нужный (нужные) алиасы для сборки. Например MyAsm1.
К сожалению добавить к референсам эти библиотеки не удается — вылетает ошибка. Между тем через DllImport поотдельности каждая импотируется нормально, но приходится иметь два исполняемых файла проги.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Здравствуйте, OldHand, Вы писали:
F>> 1. В свойства референса установить нужный (нужные) алиасы для сборки. Например MyAsm1.
OH>К сожалению добавить к референсам эти библиотеки не удается — вылетает ошибка. Между тем через DllImport поотдельности каждая импотируется нормально, но приходится иметь два исполняемых файла проги.
Так надо сразу говорить, что они нативные, и extern alias тут вообще не причем.
SO гуглится сразу же
[DllImport("myfirstdll.dll", EntryPoint="ReturnValidate")]
public static extern bool ReturnValidate1(long bignum);
[DllImport("myseconddll.dll", EntryPoint="ReturnValidate")]
public static extern bool ReturnValidate2(long bignum);
Супер! То, что надо
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>