Aracılığıyla paylaş


MFC Ortak Denetimler Kitaplığını Yalıtma

Ortak Denetimler kitaplığı artık MFC içinde yalıtılarak farklı modüllerin (kullanıcı DLL'leri gibi) kendi bildirimlerinde sürümü belirterek Common Controls kitaplığının farklı sürümlerini kullanmasına olanak tanır.

MFC uygulaması (veya MFC tarafından çağrılan kullanıcı kodu), FunctionName adlı Afxsarmalayıcı işlevleri aracılığıyla Ortak Denetimler kitaplığı API'lerine çağrı yapar; burada FunctionName, Ortak Denetimler API'sinin adıdır. Bu sarmalayıcı işlevleri afxcomctl32.h ve afxcomctl32.inl içinde tanımlanır.

Common Controls kitaplığının GetProcAddress'i çağırmak yerine belirli bir API uygulayıp uygulamadığını belirlemek için AFX_COMCTL32_IF_EXISTS ve AFX_COMCTL32_IF_EXISTS2 makrolarını (afxcomctl32.h içinde tanımlanır) kullanabilirsiniz.

Teknik olarak, sarmalayıcı sınıfı CComCtlWrapper (afxcomctl32.h içinde tanımlanır) aracılığıyla Common Controls Library API'lerine çağrı yaparsınız. CComCtlWrapper ayrıca comctl32.dll dosyasının yüklenmesinden ve kaldırılmasından da sorumludur. MFC Modül Durumu, örneğine CComCtlWrapperyönelik bir işaretçi içerir. Sarmalayıcı sınıfına makroyu afxComCtlWrapper kullanarak erişebilirsiniz.

MFC uygulaması veya kullanıcı DLL'i bildiriminde istediği Ortak Denetimler kitaplığına bağlı olduğundan, Ortak Denetimler API'sini bir MFC uygulamasından veya kullanıcı DLL'sinden doğrudan çağırmanın (MFC sarmalayıcı işlevlerini kullanmadan) çoğu durumda çalışacağını unutmayın. Ancak, MFC kodu farklı Ortak Denetimler kitaplığı sürümlerine sahip kullanıcı DLL'lerinden çağrılabileceği için MFC kodunun sarmalayıcıları kullanması gerekir.