Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Importuje metadane do programu skompilowanego za pomocą polecenia /clr.
Składnia
#using
plik [as_friend
]
Parametry
plik
Microsoft Intermediate Language (MSIL) .dll
, .exe
, .netmodule
lub .obj
file. Na przykład:
#using <MyComponent.dll>
as_friend
Określa, że wszystkie typy w pliku są dostępne. Aby uzyskać więcej informacji, zobacz Friend Assemblies (C++).
Uwagi
plik może być plikiem języka microsoft intermediate language (MSIL), który importujesz na potrzeby zarządzanych danych i konstrukcji zarządzanych. Jeśli biblioteka DLL zawiera manifest zestawu, importowane są wszystkie biblioteki DLL, do których odwołuje się manifest. Kompilowana zestaw będzie zawierać listę plików w metadanych jako odwołanie do zestawu.
Być może plik nie zawiera zestawu (plik jest modułem) i nie zamierzasz używać informacji o typie z modułu w bieżącej aplikacji (zestawu). Możesz wskazać, że moduł jest częścią zestawu przy użyciu / ASSEMBLYMODULE. Typy w module będą następnie dostępne dla każdej aplikacji, która odwołuje się do zestawu.
Alternatywą do użycia #using
jest opcja /FU kompilatora.
.exe zestawy przekazane do #using
powinny być kompilowane przy użyciu jednego z kompilatorów programu Visual Studio platformy .NET (na przykład Visual Basic lub Visual C#). Próba zaimportowania metadanych z zestawu .exe skompilowanego za pomocą /clr
polecenia spowoduje wyjątek ładowania pliku.
Uwaga
Składnik, do którego odwołuje #using
się odwołanie, można uruchomić z inną wersją pliku zaimportowanego w czasie kompilacji, co powoduje, że aplikacja kliencka daje nieoczekiwane wyniki.
Aby kompilator rozpoznawał typ w zestawie (a nie w module), musi być zmuszony do rozpoznania typu. Możesz wymusić na przykład zdefiniowanie wystąpienia typu. Istnieją inne sposoby rozpoznawania nazw typów w zestawie kompilatora. Jeśli na przykład dziedziczysz z typu w zestawie, nazwa typu stanie się znana kompilatorowi.
Podczas importowania metadanych utworzonych z kodu źródłowego używanego __declspec(thread)
semantyka wątku nie jest utrwalana w metadanych. Na przykład zmienna zadeklarowana __declspec(thread)
za pomocą polecenia skompilowana w programie utworzonym dla środowiska uruchomieniowego języka wspólnego programu .NET Framework, a następnie zaimportowana za pomocą #using
metody , nie będzie miała __declspec(thread)
semantyki w zmiennej.
Wszystkie importowane typy (zarządzane i natywne) w pliku, do których odwołuje się #using
plik, są dostępne, ale kompilator traktuje typy natywne jako deklaracje, a nie definicje.
mscorlib.dll jest automatycznie przywołyny podczas kompilowania za pomocą /clr
polecenia .
Zmienna środowiskowa LIBPATH określa katalogi do wyszukiwania, gdy kompilator rozpoznaje nazwy plików przekazane do #using
.
Kompilator wyszukuje odwołania w następującej ścieżce:
Ścieżka określona w instrukcji
#using
.Bieżący katalog.
Katalog systemowy programu .NET Framework.
Katalogi dodane z opcją kompilatora
/AI
.Katalogi w zmiennej środowiskowej LIBPATH.
Przykłady
Można utworzyć zestaw odwołujący się do drugiego zestawu, który odwołuje się do trzeciego zestawu. Musisz jawnie odwołać się do trzeciego zestawu z pierwszego, jeśli jawnie używasz jednego z jego typów.
Plik using_assembly_A.cpp
źródłowy:
// using_assembly_A.cpp
// compile with: /clr /LD
public ref class A {};
Plik using_assembly_B.cpp
źródłowy:
// using_assembly_B.cpp
// compile with: /clr /LD
#using "using_assembly_A.dll"
public ref class B {
public:
void Test(A a) {}
void Test() {}
};
W poniższym przykładzie kompilator nie zgłasza błędu dotyczącego odwoływania się do using_assembly_A.dll, ponieważ program nie używa żadnych typów zdefiniowanych w using_assembly_A.cpp.
// using_assembly_C.cpp
// compile with: /clr
#using "using_assembly_B.dll"
int main() {
B b;
b.Test();
}