欢迎来到天天文库
浏览记录
ID:34721585
大小:87.06 KB
页数:11页
时间:2019-03-10
《afxwininit以及mfc中winmain的主要功能》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、AfxWinInitVisualStudio2012其他版本此主题尚未评级 - 评价此主题作为基于GUI的应用程序的 CWinApp 初始化的一部分,此函数由由MFC提供的 WinMain 函数时,初始化,MFC。BOOLAFXAPIAfxWinInit(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,intnCmdShow);参数hInstance当前正在运行的模块的句柄。hPrevInstance对应用程序的上一个实例的句柄。 对于基于
2、Win32的应用程序,此参数始终是 NULL。lpCmdLine指向指定命令行的一个NULL终止的字符串为应用程序。nCmdShow指定GUI应用程序的主窗口将如何显示。备注对于控制台应用程序,不使用由MFC提供的 WinMain 功能,您必须直接调用 AfxWinInit 初始化MFC。如果调用 AfxWinInit ,应声明 CWinApp 类的实例。 对于控制台应用程序中,可以选择从 CWinApp 不派生您的类并不直接使用 CWinApp 实例。 ,如果您的 主的实现,决定将应用程序的所有功能保留此
3、方法很合适。 说明在创建程序集时激活上下文,则MFC使用用户模块提供的清单资源。 激活上下文在 AfxWinInit创建。 有关更多信息,请参见 为MFC模块状态的激活上下文支持。示例C++#include#includeint_tmain(int/*argc*/,TCHAR*/*argv[]*/,TCHAR*/*envp[]*/){intnRetCode=0;//initializeMFCandprintanderroronfailureif(!AfxWinInit(::G
4、etModuleHandle(NULL),NULL,::GetCommandLine(),0)){//TODO:changeerrorcodetosuityourneeds_tprintf(_T("FatalError:MFCinitializationfailed"));nRetCode=1;}else{//trytoconnecttoanODBCdatabasethatdoesn'texist//(thiswouldn'tworkatallwithoutinitializingMFC)CDataba
5、sedb;try{db.Open(_T("ThisDatabsaeDoesn'tExist"));//weshouldn'trealisticallygethere_tprintf_s(_T("Successful!")_T("Closing..."));db.Close();_tprintf_s(_T("Closed!"));}catch(CDBException*pEx){//wegotanexception!printanerrormessage//(thiswouldn'tworkwitho
6、utinitializingMFC)TCHARsz[1024];_tprintf_s(_T("Error:"));if(pEx->GetErrorMessage(sz,1024))_tprintf_s(sz);else_tprintf_s(_T("Noerrormessagewasavailable"));_tprintf_s(_T(""));pEx->Delete();nRetCode=1;}}returnnRetCode;}要求Header: afxwin.h请参见参考CWinApp类主:启动程序W
7、inMain概念MFC宏和GlobalsCWinApp:TheApplication类MFC中WinMain的主要任务流程WinMain()主要执行:CWinApp*pApp=AfxGetApp();AfxWinInit();pApp->InitApplication();pApp->InitInstance();nReturnCode=pApp->Run(); 1.WinAppCWinApp负责程序的初始化执行等等。2.AfxWinInit();AfxWinInit主要做的事情是:(1)对winapp进行
8、初始化(2)AfxInitThread()线程初始化的一些操作;BOOLAFXAPIAfxWinInit(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPTSTRlpCmdLine,intnCmdShow){ASSERT(hPrevInstance==NULL);AFX_MODULE_STATE*pState=AfxGetModuleState();pState->m_hC
此文档下载收益归作者所有