AFX_EXTENSION_MODULE yapısı

Aşağıdaki formu AFX_EXTENSION_MODULE yapıya sahiptir:

struct AFX_EXTE&NSION_MODULE
{
 nbsp; bool bInitialized;
   hmodule hModule;
   hmodule hResource;
   CRuntimeClass * pFirstSharedClass;
   COleObjectFactory * pFirstSharedFactory;
}

AFX_EXTENSION_MODULE mfc uzantısı dll başlatma sırasında uzantısı dll modülünü durumu tutmak için kullanılır.

Üyeler

bInitialized

dll modülünü AfxInitExtensionModule ile başlatılmış ise true.

hModule

Dll modülünü tutamacını belirtir.

hResource

Özel kaynak dll modülünü tutamacını belirtir.

pFirstSharedClass

( CRuntimeClass yapısı) dll modülünün ilk çalışma sınıfı hakkında bilgi için bir işaretçi. Çalışma sınıfı listesinin başlangıcını sağlamak için kullanılan.

pFirstSharedFactory

Dll modülün ilk nesne fabrikası ( COleObjectFactory nesnesi) için bir işaretçi. Sınıf fabrika listesi başlangıç sağlamak için kullanılan.

Yorumlar

Mfc uzantısı dll onların DllMain işlevi iki şey yapmanız gerekir:

AFX_EXTENSION_MODULE yapısı, uzantı dll modülünü devlet, uzantı dll tarafından normal Duruk nesne inşaat DllMain girilmeden önce yürütülen bir parçası olarak başlatıldıktan runtime sınıf nesneleri bir kopyasını da dahil olmak üzere bir kopyasını tutmak için kullanılır. Örneğin:

 statik AFX_EXTE&NSION_MODULE extensionDLL;
extern "c" int APIENTRY
DllMain (HINSTANCE HINSTANCE, dword dwReason, LPVOID)
{
 nbsp; / / Bu dll uzantısı modülü başlatılamıyor
   DOĞRULAMA (AfxInitExtensionModule (extensionDLL, HINSTANCE))

AFX_EXTENSION_MODULE yapısı içinde depolanan modül bilgilerini CDynLinkLibrary nesnesine kopyalanabilir. Örneğin:

/ / CDynLinkLibrary class
IMPLEMENT_DYN&AMIC (CDynLinkLibrary, CCmdTarget)
/ / Oluşturucu
CDynLinkLibrary::CDynLinkLibrary (AFX_EXTENSION_MODULEamp; devlet, bool bSystem)
{
#ifndef _afx_no_ole_support
   m_factoryList.construct (offsetof (COleObjectFactory, m_pNextFactory));
endif
   m_classList.construct (offsetof (CRuntimeClass, m_pNextClass));

/ / bilgi copy AFX_EXTENSION_MODULE struct
   assert (state.hModule! = null);
   m_hModule = state.hModule;
   m_hResource = state.hResource;
   m_classList.m_pHead = state.pFirstSharedClass;
#ifndef _afx_no_ole_support
   m_factoryList.m_pHead = state.pFirstSharedFactory;
endif
   m_bSystem bSystem =

Ayrıca bkz: AfxInitExtensionModule, AfxTermExtensionModule

Index