modül (C++)

.idl dosyasındaki kitaplık bloğunu tanımlar.

Sözdizimi

[ module (type=dll, name=string, version=1.0, uuid=uuid, lcid=integer, control=boolean, helpstring=string, helpstringdll=string, helpfile=string, helpcontext=integer, helpstringcontext=integer, hidden=boolean, restricted=boolean, custom=string, resource_name=string,) ];

Parametreler

type
(İsteğe bağlı) Aşağıdakilerden biri olabilir:

  • dll Sonuçta elde edilen DLL'nin işlem içi COM sunucusu olarak çalışmasına izin veren işlevler ve sınıflar ekler. Bu varsayılan değerdir.

  • exe Sonuçta elde edilen yürütülebilir dosyanın işlem dışı COM sunucusu olarak çalışmasını sağlayan işlevler ve sınıflar ekler.

  • service Sonuçta elde edilen yürütülebilir dosyanın nt hizmeti olarak çalışmasını sağlayan işlevler ve sınıflar ekler.

  • unspecified ATL modül sınıfı, genel örnek _AtlModule ve giriş noktası işlevlerinin eklenmesi olan modül özniteliğiyle ilgili ATL kodunun eklenmesini devre dışı bırakır. Projedeki diğer öznitelikler nedeniyle ATL kodu eklemeyi devre dışı bırakmaz.

ad
(İsteğe bağlı) Kitaplık bloğunun adı.

version
(İsteğe bağlı) Kitaplık bloğuna atamak istediğiniz sürüm numarası. Varsayılan değer 1,0'dır.

uuid
Kitaplığın benzersiz kimliği. Bu parametreyi atlarsanız, kitaplık için otomatik olarak bir kimlik oluşturulur. __uuidof( kitaplıkadı ) tanımlayıcısını kullanarak yapabileceğiniz kitaplık bloğunuzun uuid değerini almanız gerekebilir.

lcid
Yerelleştirme parametresi. Daha fazla bilgi için bkz . lcid .

control
(İsteğe bağlı) Kitaplıktaki tüm ortak sınıfların denetimler olduğunu belirtir.

helpstring
Tür kitaplığını belirtir.

helpstringdll
(İsteğe bağlı) Belge dizesi araması yapmak için kullanılacak .dll dosyasının adını ayarlar. Daha fazla bilgi için helpstringdll bölümüne bakın.

helpfile
(İsteğe bağlı) Tür kitaplığının Yardım dosyasının adı.

helpcontext
(İsteğe bağlı) Bu tür kitaplığının Yardım Kimliği .

helpstringcontext
(İsteğe bağlı) Daha fazla bilgi için helpstringcontext bölümüne bakın.

hidden
(İsteğe bağlı) Kitaplığın tamamının görüntülenmesini engeller. Bu kullanım, denetimlerle birlikte kullanıma yöneliktir. Konakların, denetimi genişletilmiş özelliklerle sarmalayan yeni bir tür kitaplığı oluşturması gerekir. Daha fazla bilgi için gizli MIDL özniteliğine bakın.

restricted
(İsteğe bağlı) Kitaplığın üyeleri rastgele çağrılamaz. Daha fazla bilgi için kısıtlı MIDL özniteliğine bakın.

custom
(İsteğe bağlı) Bir veya daha fazla öznitelik; bu, özel özniteliğe benzer. Özel için ilk parametre, özniteliğinin GUID'idir. Örneğin:

[module(custom={guid,1}, custom={guid1,2})]

resource_name
DLL, yürütülebilir dosya veya hizmetin APP Kimliğini kaydetmek için kullanılan .rgs dosyasının dize kaynak kimliği. Modül hizmet türünde olduğunda, bu bağımsız değişken hizmet adını içeren dizenin kimliğini almak için de kullanılır.

Not

Hem .rgs dosyası hem de hizmet adını içeren dize aynı sayısal değeri içermelidir.

Açıklamalar

Emitidl için kısıtlanmış parametreyi belirtmediğiniz sürece, C++ özniteliklerini kullanan herhangi bir programda modül gereklidir.

Kaynak kodu modül özniteliğine ek olarak dispinterface, dual, object veya ortak sınıf anlamına gelen bir öznitelik kullanıyorsa bir kitaplık bloğu oluşturulur.

Bir .idl dosyasında bir kitaplık bloğuna izin verilir. Kaynak koddaki birden çok modül girdisi birleştirilir ve en son parametre değerleri uygulanır.

Bu öznitelik ATL kullanan bir projede kullanılıyorsa özniteliğin davranışı değişir. Yukarıdaki davranışa ek olarak, özniteliği doğru türde ve ek destek kodunda bir genel nesne (olarak adlandırılır _AtlModule) ekler. Öznitelik tek başınaysa, doğru modül türünden türetilmiş bir sınıf ekler. Özniteliği bir sınıfa uygulanırsa, doğru modül türünde bir temel sınıf ekler. Doğru tür, tür parametresinin değeriyle belirlenir:

Örnek

Aşağıdaki kod, oluşturulan .idl dosyasında kitaplık bloğunun nasıl oluşturulacağını gösterir.

// cpp_attr_ref_module1.cpp
// compile with: /LD
[module(name="MyLibrary", version="1.2", helpfile="MyHelpFile")];

Aşağıdaki kod, modülün kullanılması sonucunda eklenen kodda görünecek bir işlevin kendi uygulamasını sağlayabileceğinizi gösterir. Eklenen kodu görüntüleme hakkında daha fazla bilgi için bkz . /Fx . Modül özniteliği tarafından eklenen işlevlerden birini geçersiz kılmak için işlevi uygulamanızı içerecek bir sınıf oluşturun ve modül özniteliğinin bu sınıfa uygulanmasını sağlayın.

// cpp_attr_ref_module2.cpp
// compile with: /LD /link /OPT:NOREF
#include <atlbase.h>
#include <atlcom.h>
#include <atlwin.h>
#include <atltypes.h>
#include <atlctl.h>
#include <atlhost.h>
#include <atlplus.h>

// no semicolon after attribute block
[module(dll, name="MyLibrary", version="1.2", helpfile="MyHelpFile")]
// module attribute now applies to this class
class CMyClass {
public:
BOOL WINAPI DllMain(DWORD dwReason, LPVOID lpReserved) {
   // add your own code here
   return __super::DllMain(dwReason, lpReserved);
   }
};

Gereksinimler

Öznitelik bağlamı Değer
Şunlar için geçerlidir: Hiçbir yere
Tekrarlanabilir Hayır
Gerekli öznitelikler Hiçbiri
Geçersiz öznitelikler Hiçbiri

Daha fazla bilgi için bkz . Öznitelik Bağlamları.

Ayrıca bkz.

IDL öznitelikleri
Sınıf Öznitelikleri
Tek Başına Öznitelikler
Typedef, Enum, Union ve Struct Öznitelikleri
usesgetlasterror
kütüphane
helpcontext
helpstring
helpfile
version