#using yönergesi (C++/CLI)
Meta verileri /clr ile derlenmiş bir programa aktarır.
Sözdizimi
#using
dosya [as_friend
]
Parametreler
dosya
Microsoft ara dili (MSIL) .dll
, .exe
, .netmodule
veya .obj
dosyası. Örneğin,
#using <MyComponent.dll>
as_friend
Dosyadaki tüm türlerin erişilebilir olduğunu belirtir. Daha fazla bilgi için bkz . Arkadaş Derlemeleri (C++).
Açıklamalar
dosyası , yönetilen verileri ve yönetilen yapıları için içeri aktardığınız bir Microsoft ara dil (MSIL) dosyası olabilir. DLL bir derleme bildirimi içeriyorsa bildirimde başvuruda bulunulur tüm DLL'ler içeri aktarılır. Oluşturduğunuz derleme, meta verilerdeki dosyayı derleme başvurusu olarak listeler.
Dosya bir derleme içermiyor olabilir (dosya bir modüldür) ve geçerli (derleme) uygulamasında modüldeki tür bilgilerini kullanmayı amaçlamazsınız. /ASSEMBLYMODULE kullanarak modülün derlemenin bir parçası olduğunu belirtebilirsiniz. Ardından modüldeki türler derlemeye başvuruda bulunan herhangi bir uygulama için kullanılabilir hale gelir.
/FU derleyici seçeneği, kullanmak #using
için bir alternatiftir.
geçirilen .exe derlemeler #using
.NET Visual Studio derleyicilerinden biri kullanılarak derlenmelidir (örneğin, Visual Basic veya Visual C#). /clr
ile derlenmiş .exe derlemesinden meta veriler içe aktarmaya çalışıldığında dosya yükleme özel durumu oluşur.
Not
ile #using
başvuruda bulunılan bir bileşen, derleme zamanında içeri aktarılan dosyanın farklı bir sürümüyle çalıştırılabilir ve bu da istemci uygulamasının beklenmeyen sonuçlar vermesine neden olur.
Derleyicinin derlemedeki bir türü (modül değil) tanıması için türü çözümlemeye zorlanması gerekir. Örneğin, türün bir örneğini tanımlayarak zorlayabilirsiniz. Derleyici için bir derlemedeki tür adlarını çözümlemenin başka yolları da vardır. Örneğin, bir derlemedeki bir türden devralırsanız, tür adı derleyici tarafından bilinir.
kullanılan __declspec(thread)
kaynak kodundan oluşturulan meta veriler içeri aktarılırken, iş parçacığı semantiği meta verilerde kalıcı olmaz. Örneğin, ile __declspec(thread)
bildirilen ve .NET Framework ortak dil çalışma zamanı için oluşturulmuş bir programda derlenen ve ardından aracılığıyla #using
içeri aktarılan bir değişkende semantik olmaz __declspec(thread)
.
Tarafından #using
başvuruda bulunulan bir dosyada içeri aktarılan tüm türler (hem yönetilen hem de yerel) kullanılabilir, ancak derleyici yerel türleri tanım olarak değil bildirim olarak değerlendirir.
/clr
ile derlerken, mscorlib.dll'ye otomatik olarak başvurulur.
LIBPATH ortam değişkeni, derleyici geçirilen dosya adlarını #using
çözümlediğinde aranacak dizinleri belirtir.
Derleyici aşağıdaki yol boyunca başvuruları arar:
deyiminde
#using
belirtilen bir yol.Geçerli dizin.
.NET Framework sistem dizini.
Dizinler derleyici seçeneğiyle
/AI
eklendi.LIBPATH ortam değişkenindeki dizinler.
Örnekler
Üçüncü bir derlemeye başvuran ikinci bir derlemeye başvuran bir derleme oluşturabilirsiniz. Yalnızca türlerinden birini açıkça kullanıyorsanız ilk derlemeden üçüncü derlemeye açıkça başvurmanız gerekir.
Kaynak dosya using_assembly_A.cpp
:
// using_assembly_A.cpp
// compile with: /clr /LD
public ref class A {};
Kaynak dosya using_assembly_B.cpp
:
// using_assembly_B.cpp
// compile with: /clr /LD
#using "using_assembly_A.dll"
public ref class B {
public:
void Test(A a) {}
void Test() {}
};
Aşağıdaki örnekte, program using_assembly_A.cpp'de tanımlanan türlerden hiçbirini kullanmadığından derleyici using_assembly_A.dll başvurmayla ilgili bir hata bildirmez.
// using_assembly_C.cpp
// compile with: /clr
#using "using_assembly_B.dll"
int main() {
B b;
b.Test();
}