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:
type
= DllCAtlDllModuleT , com sunucusu için gereken temel sınıf ve standart DLL giriş noktaları olarak kullanılır. Bu giriş noktaları DllMain, DllRegisterServer, DllUnRegisterServer, DllCanUnloadNow ve DllGetClassObject'tir.
type
= exeCAtlExeModuleT temel sınıf ve standart yürütülebilir giriş noktası WinMain olarak kullanılır.
type
= hizmetCAtlServiceModuleT temel sınıf ve standart yürütülebilir giriş noktası WinMain olarak kullanılır.
type
= Belirtilme -mişModül özniteliğiyle ilgili ATL kodu eklemeyi devre dışı bırakır.
Ö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