Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

#using

CuBook05

Директива #using будет импортировать метаданные в программу компилированную с /clr.
#using file [as_friend]
 
Параметры:
file - *.dll или *.exe, например:
#using <MyComponent.dll>
as_friend - указывает, что все типы в file доступны.
 
file может быть файл Microsoft intermediate language (MSIL) для управляемых данных и управляемых конструкций. Если DLL-файл содержащий манифест сборки, то импортированы все .dlls, на которые имеются ссылки в манифесте и сборка строит перечисленные файлы в метаданных в качестве ссылки на сборку.
 
Если file не содержит сборку (если file модуль) и если не планируется использовать информацию о типах из модуля в текущем приложении (сборки) можно просто указать, что модуль является частью сборки; используйте /ASSEMBLYMODULE.
 
Альтернативы для использования #using/FU параметр компилятора.
 
Сборки *.exe, передаваемые #using, компилируются с /clr:safe или /clr:pure или с любыми другими компиляторы Visual Studio (например Visual Basic или Visual c#). При попытке импортировать метаданные из сборки *.exe с /clr приведет к возникновению исключения при загрузке файла.
Компонент, который ссылается на #using можно выполнить с другой версией файла импортированного во время компиляции.
Чтобы компилятор мог распознавать тип в сборке (не в модуле), ему следует указать принудительно разрешение типа. Это можно сделать, например, определив экземпляр типа. Возможны и другие способы разрешения компилятором имен типов в сборке. Например, если тип наследуется от типа в сборке, его имя будет распознаваться компилятором.
 
Метаданные, созданные при импортировании из исходного кода, который использует __declspec (поток) семантика потока не упорствована в метаданных. Например, переменная, объявленная с __declspec (поток), компилируется в программе, строиться для среды CLR платформы .NET Framework, а затем импортируется с помощью #using.
 
Все импортированные типы (как управляемый, так и собственные) в файле, на который ссылается #using доступны, но компилятор рассматривает собственные типы в качестве определения объявлений.
 
mscorlib.dll автоматически ссылается при компилировании с /clr.
 
Переменная среды LIBPATH указывает каталоги, которые будут производиться, когда компилятор пытается разрешить имена файлов, передаваемые #using.
 
Компилятор будет выполнять поиск для ссылок на следующие пути:
1. Путь, указанный в #using выписка.
2. Текущий каталог.
3. Системный каталог платформы .NET Framework.
4. Каталоги, добавленные с /AI параметр компилятора.
5. Каталоги в переменной среды LIBPATH.
 
Пример:
При построении сборки (c) и (B ссылке на саму сборку), выдающую ссылку на другую сборку (a), необходимо явно ссылаться на сборку (a), если явно не будет использовать один из типов (c) в (a).
// using_assembly_A.cpp
// compile with: /clr /LD
public ref class A {};
// using_assembly_B.cpp
// compile with: /clr /LD
#using "using_assembly_A.dll"
public ref class B {
public:
void Test(A a) {}
void Test() {}
};
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий