extern alias
От: OldHand Россия  
Дата: 17.04.15 02:53
Оценка:
Есть две DLL-ки из которых нужно импортировать функции с одинаковым именем. Понимаю что нужно использовать DLL-ки с разными псевдонимами с помощью "extern alias", но не могу понять как.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re: extern alias
От: fddima  
Дата: 17.04.15 03:28
Оценка:
Здравствуйте, OldHand, Вы писали:

OH>Есть две DLL-ки из которых нужно импортировать функции с одинаковым именем. Понимаю что нужно использовать DLL-ки с разными псевдонимами с помощью "extern alias", но не могу понять как.

extern alias
1. В свойства референса установить нужный (нужные) алиасы для сборки. Например MyAsm1.
2. В файле кода (до любых namespace) пишем:
extern alias MyAsm1;

Теперь типы/нэймспейсы из этой собрки будут доступны
MyAsm1::MyNamespace.MySubNamespace.MyClass
.
Re[2]: extern alias
От: OldHand Россия  
Дата: 17.04.15 04:21
Оценка:
Здравствуйте, fddima, Вы писали:
F> 1. В свойства референса установить нужный (нужные) алиасы для сборки. Например MyAsm1.
К сожалению добавить к референсам эти библиотеки не удается — вылетает ошибка. Между тем через DllImport поотдельности каждая импотируется нормально, но приходится иметь два исполняемых файла проги.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re[3]: extern alias
От: fddima  
Дата: 17.04.15 05:53
Оценка: 3 (1) +1
Здравствуйте, 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);
Re[4]: extern alias
От: OldHand Россия  
Дата: 17.04.15 07:02
Оценка:
Супер! То, что надо
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.