Russian Belarusian English German Japanese Ukrainian

Директива #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

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


Поиск по сайту