Шаг 214 - Версии и типы DLL MFC

Этот раздел может быть и не Важен, если Вы разрабатываете приложения для себя, но вот если Вы собираетесь его распространять неплохо бы иметь некоторые знания по данному вопросу. В любом случае инсталляцию надо представлять как будто она производится на пустой компьютер с Windows. Так что давайте выясним некоторые подробности. Первое, написанный Вами код не будет включать все, что необходимо вашей программе, особенно если вы пользуетесь Dinamic Link. MFC появилась не вчера и у нее есть тоже версии. Весь код MFC находится в DLL и эти файлы имеют имена типа MFCxx.DLL. Ну, например:

......
MFC30.DLL
MFC40.DLL
......

Соотвественно Вам неплохо бы знать какую Версию Вы используете для компиляции, и при этом такая же DLL должна быть в системе. На данный момент MFCxx.DLL является частью системы Windows. Слишком много программного обеспечения используют их для работы. Например, в поставке Windows 95 есть такие библиотеки:

Win95_02.cab
mfc30.dll          322,832  07-11-1995  9:50:00a
mfcd30.dll          55,808  07-11-1995  9:50:00a
mfcn30.dll          15,872  07-11-1995  9:50:00a
mfco30.dll         133,392  07-11-1995  9:50:00a
Win95_03.cab
mfcans32.dll       133,904  07-11-1995  9:50:00a

Debug версии отличаются от версий Release наличием буковки D. А вот это немного опаснее. Так как, если Вы скомпилировали отладочную версию, то надеяться на то, что в системе уже есть такие библиотеки точно не стоит. Вот пример соответствия.

Release				Debug
MFCxx.DLL 			MFCxxD.DLL 
MFCNxx.DLL 			MFCNxxD.DLL 

Соотвественно DLL имеющие отношений к UNICODE тоже будут иметь свою буковку U. Все остальное по правилам. Вот смотрите.

           Unicode   Unicode Debug
MFCxx.DLL MFCxxU.DLL  MFCxxUD.DLL 

Естественно, что MFC по причине своего размера разбита на части в виде отдельных DLL:

MFCxx.ВLL	Основная
MFCOxx.DLL 	OLE
MFCDxx.DLL  Базы данных
MFCNxx.DLL  Сеть

Основной модуль MFC может быть выполнен в виде static или dinamic компоновки. Они тоже отличаются по букве S.

Динамическая компоновка		Статическая компоновка
MFCxx.LIB 			MFCSxx.LIB 

Есть и отдельные заплатки, например, библиотека MFCANS32.DLL занимается конвертацией UNICODE-MBCS. Но это специфичная библиотека.

Все библиотеки MFCxx.DLL используют <>MSVCRTxx.DLL, то есть она тоже должна обязательно быть установлена. Эта библиотека используется для распределения памяти. Кстати она и не идет в поставке Windows 95, поэтому Вы должны позаботиться о ее наличии.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 14.08.2000