Шаг 14 - Об отладке, размере файлов и т.д.

Создание проекта

Создайте любой проект Win32 Console, например с именем step14. Не забудьте установить поддержку MFC, как в "Шаг 1 - Минимальный проект".

Создаем код

#include "stdafx.h"
#include "iostream.h"
#include "afxwin.h"	// библиотека MFC
#include "conio.h"

void main()
{
	cout << "This not debug" << endl;
#ifdef _DEBUG
	cout << "debug code" << endl;
#endif
	getch();	// дождаться нажатия клавиши
}

Описание

Запускайте, выполняйте. На экране должна появиться надпись.

This not debug
debug code

Это говорит о том, что у нас включена отладка в код. В нашем EXE есть имена переменных, классов, функций, и весь код. Плюс к тому в нем есть код включенный через детективы компилятора _DEBUG. В MFC такого отладочного кода девать некуда. Честное слово. Посмотрите исподники MFC в каталоге:

Версия 5.0
	Program Files\DevStudio\Vc\mfc\src

Версия 6.0
	Program Files\Microsoft Visual Studio\VC98\MFC\SRC

А теперь посмотрим размер вашего файла. В каталоге проекта есть папка Debug, где лежит Ваш файл и его размер где-то около...

Версия 5.0 -  900 kb
Версия 6.0 -  1.25 mb

Как мне сказал один хороший знакомый - валерианки не хватит. Для того, чтобы получить нормальную версию, необходимо переключиться на проект Release. Это делается в меню Build далее Set Active Configuration:

14_1.gif (2036 b)

Дальше надо выбрать Release:

14_2.gif (2370 b)

Запустите сборку Rebuild all и проект на выполнение. На экране появится.

This not debug

В папочке проекта у вас появится папочка Release. Посмотрите там размер EXE файла всего около 100 КБ. Как впечатляет ?

14_3.gif (1070 b)

Ещё размер зависит от того, как вы используете MFC. Есть два варианта Static Library и Dinamic Library. Если вы используете первый вариант, то код MFC будет в проекте и размер вырастет. Во втором варианте программа будет пользоваться DLL и размер будет меньше.

Так вот второй вариант, это потенциальные проблемы, вам надо следить при установке, чтобы все DLL были в системе. Кто гарантирует, что их потом не заменят или не удалят? Я помню на заре развития программирования на VB появились утилиты, которые прикрепляют DLL к EXE, они появились после горького опыта многих людей.

У меня пользователи не могут даже заставку на экране поменять. При таком подходе можно применять динамическую компоновку. А если ваша программа будет работать в экстремальных ситуациях и на большом удалении от Вас, оставляйте статическую компоновку. Жесткие диски по 10 GB и больше уже норма. Ничего с ними не станет. Сотрут игры :) !!!

Шпаргалка

Завершая разработку программы, сделайте версию компоновки Release.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 06.09.99 (обновлено 29.06.2001)