Пора нам спрятать 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 там уже не нужна. У нас же есть одна. А она всегда глобальная и в единственном числе должна быть.
Вот новый код.
// 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.
Естественно вызовется WinMain, в которой написано как видите текущий класс вызвать Run. Если пойти дальше, то можно увидеть что это за текущий класс. А это наш класс. Который мы породили.