Share via


#using yönergesi (C++/CLI)

Meta verileri /clr ile derlenmiş bir programa aktarır.

Sözdizimi

#usingdosya [as_friend]

Parametreler

Dosya
Microsoft ara dili (MSIL) .dll, .exe, .netmoduleveya .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.

'a #using geçirilen .exe derlemeleri ,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.

Dekont

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 #usingiç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 dosyasında tanımlanan türlerden hiçbirini kullanmadığından derleyici using_assembly_A.dll'ye başvurmayla ilgili bir hata bildirmiyor.

// using_assembly_C.cpp
// compile with: /clr
#using "using_assembly_B.dll"
int main() {
   B b;
   b.Test();
}

Ayrıca bkz.

Önişlemci yönergeleri