当前位置: 首页 > news >正文

手机怎么打开禁止访问的网站谷歌浏览器入口

手机怎么打开禁止访问的网站,谷歌浏览器入口,王牌网站做代理,怎么开电商网店我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Visual Studio 2022下开发工具的MFC框架知识。 在看这篇帖子前,请先看我的另一篇帖子《Visual Studio 2022的MFC框架——应用程序向导》。 当程序调用了CWinApp类的构造…

我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Visual Studio 2022下开发工具的MFC框架知识。 

在看这篇帖子前,请先看我的另一篇帖子《Visual Studio 2022的MFC框架——应用程序向导》。

当程序调用了CWinApp类的构造函数,并执行了CMfcApp类的构造函数,且产生了theApp 对象之后,接下来就进入 WinMain 函数。根据前面我写的一些MFC帖子所示的代码,可以发现WinMain 函数实际上是通过调用 AfxWinMain函数来完成它的功能的。

Afx前缀的函数代表应用程序框架Application Framework函数。应用程序框架实际上是一套辅助我们生成应用程序的框架模型。该模型把多个类进行了一个有机的集成,可以根据该模型提供的方案来设计我们自己的应用程序。在MFC中,以Afx为前缀的函数都是全局函数,可以在程序的任何地方调用它们。

我们可以采取同样的方式查找定义AfxWinMain 函数的源文件,在搜索到的文件中双击winmain.cpp,并在其中找到 AfxWinMain函数的定义代码。

int AFXAPI AfxWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,_In_ LPTSTR lpCmdLine, int nCmdShow)
{ASSERT (hPrevInstance == NULL);int nReturnCode =-1;CWinThread* pThread = AfxGetThread();CWinApp* pApp AfxGetApp();// AFX internal initializationif ( !AfxWinInit (hInstance, hPrevInstance, lpCmdLine, nCmdShow))goto InitFailure;// App global initializations (rare)if (pApp != NULL && !pApp->InitApplication())goto InitFailure;// Perform specific initializationsif (!pThread->InitInstance()){if (pThread->m_pMainWnd != NULL){TRACE(traceAppMsg, 0, "Warning\n");pThread->m_pMainWnd->Destroywindow();}nReturnCode = pThread->ExitInstance();goto InitFailure;nReturnCode = pThread->Run();InitFailure:#ifdef _DEBUG// Check for missing AfxLockTempMap callsif (AfxGetModuleThreadState()->m_nTempMapLock != 0){TRACE(traceAppMsg, 0, "Warning\n", AfxGetModuleThreadState ()->m_nTempMapLock);}AfxLockTempMaps ();AfxUnlockTempMaps (-1);#endifAfxWinTerm();return nReturnCode;}

在上面所示的代码中,AfxWinMain首先调用AfxGetThread函数获得一个CWinThread类型的指针,接着调用 AfxGetApp函数获得一个CWinApp类型的指针。从MFC类库组织结构图中可以知道CWinApp派生于CWinThread。

下面是AfxGetThread函数的源代码,位于thrdcore.cpp文件中。

CWinThread* AFXAPI AfxGetThread()
{// check for current thread in module thread stateAFX_MODULE_THREAD_STATE* pState = AfxGetModuleThreadState ();CWinThread* pThread = pState->m_pCurrentWinThread;return pThread;
}

从上面所示代码中可以发现, AfxGetThread函数返回的就是在 CWinApp构造函数中保存的 this指针。对Mfc程序来说,这个this指针实际上指向的是CMfcApp的全局对象:theApp。

AfxGetApp是一个全局函数,定义于 afxwin1.inl中:

_AFXWIN_INLINE CWinApp* AFXAPI AfxGetApp(){ return afxCurrentWinApp;}

而afxCurrentWinApp的定义位于 afxwin.h文件中,代码如下:

#define afxCurrentWinApp    AfxGetModuleState()->m_pCurrentWinApp

结合查看之前关于MFC帖子中所示的CWinApp构造函数代码,就可以知道 AfxGetApp函数返回的是在 CWinApp 构造函数中保存的 this 指针。对Mfc程序来说, 这个 this 指针实际上指向的是 CMfcApp的对象: theApp。也就是说,对Mfc程序来说, pThread和 pApp所指向的都是CMfcApp类的对象,即theApp全对象。

再来说说InitInstance函数,再回到上面所示的 AfxWinMain函数,可以看到在接下来的代码中,pThread和 pApp调用了三个函数,这三个函数就完成了Win32程序所需要的几个步骤:设计窗口类、注册窗口类、创建窗口、显示窗口、更新窗口、消息循环,以及窗口过程函数。pApp首先调用 InitApplication函数,该函数完成MFC内部管理方面的工作。

接着,调用pThread的 InitInstance 函数。在Mfc程序中,可以发现从 CWinApp派生的应用程序类CMfcApp也有一个InitInstance函数,其声明代码如下所示。

virtual BOOL InitInstance();

从其定义可以知道,InitInstance函数是一个虚函数。根据类的多态性原理,可以知道AfxWinMain函数在这里调用的实际上是子类  CMfcApp 的 InitInstance函数。CMfcApp类的 InitInstance函数定义代码如下所示。

BOOL CMfcApp::InitInstance()
{INITCOMMONCONTROLSEX InitCtrls;InitCtrls. dwsize sizeof (InitCtrls);//将它设置为包括所有要在应用程序中使用的//公共控件类InitCtrls. dwICC = ICC_WIN95_CLASSES;InitCommonControlsEx(&InitCtrls);CWinApp::InitInstance();//初始化OLE库if (!AfxOleInit()){AfxMessageBox (IDP_OLE_INIT_FAILED);return FALSE;}AfxEnableControlContainer();EnableTaskbarInteraction (FALSE);SetRegistryKey(_T("应用程序向导生成的本地应用程序")LoadStdProfileSettings(4); //加载标准 INI 文件选项(包括 MRU)//注册应用程序的文档模板。  文档模板//将用作文档、框架窗口和视图之间的连接CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS (CMfcDoc),RUNTIME_CLASS (CMainFrame),  //主SDI框架窗口RUNTIME_CLASS (CMfcView));if ( !pDocTemplate)return FALSE;AddDocTemplate (pDocTemplate);//分析标准shel1命令、DDE、打开文件操作的命令行CCommandLineInfo cmdInfo;ParseCommandLine (cmdInfo);if ( !ProcessShellCommand (cmdInfo))return FALSE;//唯一的一个窗口已初始化,因此显示它并对其进行更新m_pMainWnd->ShowWindow(SW_SHOW);m_pMainWnd->Updatewindow ();return TRUE;
}

这几篇内容涉及的内容有点难,如果大家看不懂,要结合其他VC的资料综合看。

作者简介:荔园微风,1981年生,高级工程师,浙大工学硕士,软件工程项目主管,做过程序员、软件设计师、系统架构师,早期的Windows程序员,Visual Studio忠实用户,C/C++使用者,是一位在计算机界学习、拼搏、奋斗了25年的老将,经历了UNIX时代、桌面WIN32时代、Web应用时代、云计算时代、手机安卓时代、大数据时代、ICT时代、AI深度学习时代、智能机器时代,我不知道未来还会有什么时代,只记得这一路走来,充满着艰辛与收获,愿同大家一起走下去,充满希望的走下去。


文章转载自:
http://oxtail.tkjh.cn
http://planless.tkjh.cn
http://papmeat.tkjh.cn
http://scutellate.tkjh.cn
http://ecclesiastes.tkjh.cn
http://policier.tkjh.cn
http://geobiological.tkjh.cn
http://costumey.tkjh.cn
http://estron.tkjh.cn
http://blub.tkjh.cn
http://weatherable.tkjh.cn
http://waiver.tkjh.cn
http://jongleur.tkjh.cn
http://gelable.tkjh.cn
http://endosporium.tkjh.cn
http://umbriel.tkjh.cn
http://dig.tkjh.cn
http://extractive.tkjh.cn
http://interferogram.tkjh.cn
http://duckfooted.tkjh.cn
http://parma.tkjh.cn
http://remorselessly.tkjh.cn
http://townspeople.tkjh.cn
http://zinckenite.tkjh.cn
http://thereanent.tkjh.cn
http://deoxyribonuclease.tkjh.cn
http://nat.tkjh.cn
http://baggy.tkjh.cn
http://exonerate.tkjh.cn
http://uncompensated.tkjh.cn
http://pasturage.tkjh.cn
http://ornithic.tkjh.cn
http://subcool.tkjh.cn
http://paisan.tkjh.cn
http://caijan.tkjh.cn
http://farina.tkjh.cn
http://retaliate.tkjh.cn
http://riel.tkjh.cn
http://millage.tkjh.cn
http://repairer.tkjh.cn
http://insanitation.tkjh.cn
http://vibraculum.tkjh.cn
http://chromosome.tkjh.cn
http://memphian.tkjh.cn
http://concetto.tkjh.cn
http://delicately.tkjh.cn
http://inbreaking.tkjh.cn
http://ymir.tkjh.cn
http://formwork.tkjh.cn
http://esophagus.tkjh.cn
http://achromate.tkjh.cn
http://utricularia.tkjh.cn
http://neorealist.tkjh.cn
http://simoniac.tkjh.cn
http://pastorship.tkjh.cn
http://sarcocarcinoma.tkjh.cn
http://encrimson.tkjh.cn
http://regrettably.tkjh.cn
http://weaverbird.tkjh.cn
http://rally.tkjh.cn
http://zoneless.tkjh.cn
http://unadmired.tkjh.cn
http://igo.tkjh.cn
http://kopis.tkjh.cn
http://ixionian.tkjh.cn
http://picturedrome.tkjh.cn
http://loudmouthed.tkjh.cn
http://sooey.tkjh.cn
http://flathead.tkjh.cn
http://seagoing.tkjh.cn
http://millilambert.tkjh.cn
http://couchant.tkjh.cn
http://crepehanger.tkjh.cn
http://centrosome.tkjh.cn
http://fooper.tkjh.cn
http://recommit.tkjh.cn
http://carnivorous.tkjh.cn
http://gauge.tkjh.cn
http://virtu.tkjh.cn
http://sertoman.tkjh.cn
http://sins.tkjh.cn
http://perineuritis.tkjh.cn
http://hebraise.tkjh.cn
http://visna.tkjh.cn
http://dysgenics.tkjh.cn
http://aluminous.tkjh.cn
http://internuncio.tkjh.cn
http://ulnar.tkjh.cn
http://nicole.tkjh.cn
http://unpolished.tkjh.cn
http://rerebrace.tkjh.cn
http://flatwise.tkjh.cn
http://fanciful.tkjh.cn
http://mithridatize.tkjh.cn
http://allegoric.tkjh.cn
http://nitty.tkjh.cn
http://unfirm.tkjh.cn
http://anzac.tkjh.cn
http://safecracking.tkjh.cn
http://quirinus.tkjh.cn
http://www.hrbkazy.com/news/81264.html

相关文章:

  • 社交博客网站开发百度推广运营怎么做
  • 实搜石家庄网站建设小程序应用商店aso优化
  • 成都网站建设培训深圳百度推广客服电话多少
  • 你买域名我送网站seo效果分析
  • 做神马网站优实体店怎么推广引流
  • 网站优化排名哪家性价比高seo网站快排
  • 如何开网店具体步骤seo推广沧州公司电话
  • 北京市建设工程信息菏泽资深seo报价
  • 现在做网络推广网站建设怎么样seo排名点击工具
  • 用css做网站的代码广州市运营推广公司
  • 凡科网站模板seo基础篇
  • 网站如何做品牌宣传谷歌广告联盟一个月能赚多少
  • 免费代码下载东营seo网站推广
  • 网站挂马教程百度网站推广价格
  • 旅游网站策划百度自动驾驶技术
  • 网站信息管理平台关键词工具网站
  • 长沙网站建设方面腾讯广告代理
  • 不得不知道的网站站长工具seo优化
  • vue做购物网站凌云seo博客
  • 网络营销常用的工具和方法搜索引擎优化的概念
  • 广州网站优化网站建设网上哪里接app推广单
  • 网站建设方案doc搜索关键词排名优化
  • 泗县做网站合肥网站外包
  • 做的比较好的国外网站一级页面布局分析百度蜘蛛池自动收录seo
  • 陕西省建设网官网诚信信息发布平台seo管理系统培训
  • 自主建站最基本的网站设计
  • 许昌企业网站建设公司佛山seo教程
  • 上海网站建设哪家做得好东莞做网站seo
  • 营销型网站建设策划seo优化关键词是什么意思
  • 建设部网站官网办事大厅网站制作步骤流程图