Как делали MFC - Прячем WinMain

Пора нам спрятать WinMain. Мы его перенесем в класс CWinApp. Без шума и лишних объявлений.

//////////////////////////////////////////////////////////////////////
// Function
//////////////////////////////////////////////////////////////////////
int CWinApp::Run()
{
return 0;
}

CWinApp* AfxGetApp()
{	
	return afxCurrentWinApp;
}

int PASCAL WinMain (HINSTANCE hInst,HINSTANCE hPrev, LPSTR pszCmdLine, int nCmdShow) 
{	
	return AfxGetApp()->Run(); 
}

Компилируйте проект. А вот теперь переключайте в TestMyLib и мы изменим код. WinMain там уже не нужна. У нас же есть одна. А она всегда глобальная и в единственном числе должна быть.

gif/3_1.gif (3821 b)

Вот новый код.

// TestMyLib.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "HMFC\\WinApp.h"

#pragma comment(lib,"HMFC\\Debug\\HMFC.lib")   // там наш код библиотеки


class CMyApp : public CWinApp
{

};

CMyApp CApp;

Вот так практически как в MFC. Для того, чтобы посмотреть, что происходит при запуске программы давайте запустим отладку по шагам. Жмите F10.

gif/3_2.gif (3292 b)

Естественно вызовется WinMain, в которой написано как видите текущий класс вызвать Run. Если пойти дальше, то можно увидеть что это за текущий класс. А это наш класс. Который мы породили.

gif/3_3.gif (5448 b)


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