http://alpha-thema-online.uv.ro
Fa-ti si tu propriul forum, pe www.myforum.ro!
Pagina de start a forumului http://alpha-thema-online.uv.ro Autentificare Inregistrare FAQ Membri Cautare

Pagina de start a forumului http://alpha-thema-online.uv.ro » C / C++ / C# » MFC Tips - General
Creaza un subiect nou  Raspunde la subiect Subiectul anterior :: Subiectul urmator 
MFC Tips - General
MesajTrimis: 19/07/2007 16:17 Raspunde cu citat (quote)
Ad_Infinitum
Administrator
Administrator
Ad_Infinitum
Data inscrierii: 23/Iun/2007
Mesaje: 212




Cum folosim MFC intr-o aplicatie Win32?

Problema
Avem o aplicatie deja dezvoltata de tip Win32 fara MFC si la un momentdat vrem sa folosim, pentru simplitate si usurinta, ceva "marfa", functii sau clase din MFC.
Deci, schimbam setarile proiectului din "Not using MFC" in "Using MFC in a Shared DLL", stergem include-ul pentru <windows.h> si adaugam pe cele necesare pentru MFC, repectiv <afxwin.h> si <afxext.h>.
OK. Proiectul se compileaza acum fara probleme.
Insa la run-time unele chestii merg iar altele intra in balarii.

Exemplu

Citat:


// MyWin32App.cpp
// #include <windows.h>
#include <afxwin.h> // MFC core and standard components
#include <afxext.h> // MFC extensions

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
CString strText = _T("Un text de test");
AfxMessageBox(strText); // <-- OK, it works till here.

CFileDialog dlg(TRUE);
if(IDOK==dlg.DoModal()) // <-- Oups!!! ASSERT
{
// ...
}
// ...
return 0;
}


Rezolvare
Am mai ramas un mic amanunt de rezolvat ceea ce framework-ul MFC face by default si anume ca, inainte de indiferent ce alt apel din MFC, sa-l initializam cu functia AfxWinInit.

Exemplu

Citat:

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
BOOL bRet = AfxWinInit(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
if(! bRet)
{
TRACE0(_T("Initializing MFC failed"));
return -1;
}
// ...
// ... Further, enjoy of MFC!...
// ...
return 0;
}


NOTE: Aceiasi metoda se aplica si in cazul aplicatiilor tip consola.
Vezi profilul utilizatorului Trimite mesaj privat

MFC Tips - General
 Pagina de start a forumului http://alpha-thema-online.uv.ro » C / C++ / C#
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum
Ora este GMT + 3 ore  
Pagina 1 din 1  

  
  
 Creaza un subiect nou  Raspunde la subiect  


Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro
    Powered by phpBB © 2001-2004 phpBB Group. phpBB Skin by Vjacheslav Trushkin.