MFC框架中消失的WinMain()】的更多相关文章

学过一段时间的MFC之后,很多人大概都有一个疑问:在MFC中,WinMain()哪去了?因为任何一个使用过Win32 SDK编程的人都知道,WinMain()函数是Win32程序开始的入口点,可是在MFC的框架使用中,一般我们只知道从CWinApp类继承得到一个新类,然后重写InitInstance()虚函数,程序框架就可以运行了.哪么,在MFC中,WinMain()倒底去哪了? 似乎微软就是不想让人清楚.明白的了解MFC框架将WinMain()封装的过程.微软在MFC中是这样隐藏调用WinMa…
引言 我们知道,在MFC框架中,用于绘图的接口是GDI.但GDI只能绘制简单的2D图形,要想制作精美的3D图形,一个可行的办法是使用OpenGL或者Direct3D等第三方库. 由于最近在给导师的一个小项目帮忙,而且要求使用OpenGL,所以我特地在网上搜索“如何在MFC框架中使用OpenGL”,看了很多博文,甚至论文(居然还有人把这个写成论文)后,自己又到VS2012上尝试了一番,最终摸索出了最最简单基本的使用方法,故总结在这里.一方面开启自己在博客园的学习和自省之路,另一方面也为需要的朋友提…
接着上一篇<介绍MFC框架中涉及到的设计模式(一)>介绍 单例模式(Singleton Pattern) 单例模式是一种经常使用的软件设计模式.在它的核心结构中仅仅包括一个被称为单例类的特殊类.通过单例模式能够保证系统中一个类仅仅有一个实例并且该实例易于外界訪问.从而方便对实例个数的控制并节约系统资源. 假设希望在系统中某个类的对象仅仅能存在一个,单例模式是最好的解决方式. 单例模式的要点有三个: 1.某个类仅仅能有一个实例: 2.它必须自行创建这个实例: 3.它必须自行向整个系统提供这个实例…
一直以来,我使用的方法都是shiqiyu在opencvchina上面提供的引入directshow,并且采用cvvimage和cameraDs的方法.这个方法虽然在xp/win7/win8下面都能够成果使用,但是一直以来我都没有动机去深入看一看这个方法.这次在知乎上面看到 jie wu 提出的“将Opencv窗口添加到PictureControl”中的方法,感到思路很好,进行了具体实现 http://pan.baidu.com/s/1nuixdhR 具体可以看代码,我帖一些主要代码 void C…
转自:http://blog.163.com/zhigang0633@126/blog/static/38790491200822711526168/ 讲述MFC AppWizard的原理与MFC程序框架的剖析.AppWizard是一个源代码生成工具,是计算机辅助程序设计工具,WinMain在MFC程序中是如何从源程序中被隐藏的,theApp全局变量是如何被分配的,MFC框架中的几个类的作用与相互关系,MFC框架窗口是如何产生和销毁的,对窗口类的PreCreateWindow和OnCreate两…
参考: https://blog.csdn.net/u014162133/article/details/46573873 1. 2.MFC简介:MFC(Microsoft Foundation Class,微软基础类库)是微软为了简化程序员的开发工作所开发的一套C++类的集合,是一套面向对象的函数库,以类的方式提供给用户使用.利用这些类,可以有效发帮助程序员完成Windows应用程序的开发. MFC AppWizard是一个辅助生成源代码的向导工具,它可以帮助我们自动生成基于MFC框架的源代码…
第一点:类别型录网的搭建: 类别型录网搭建的目的是为了实现所谓的"执行期类型识别",也就是在程序运行的时候识别出某个对象是否是某个类的实例(基类也可以).这里还不是很明白为什么需要实现"执行期类型识别",这种技巧具体被应用在哪里. 例如在MFC中CView继承于CWnd,那么可以进行这样的判断: CView view; bool result = view.IsKindOf(CWnd); // result == true 如上,通过调用IsKindOf函数,可以判…
框架原理第二讲,RTTI,运行时类型识别.(以MFC框架讲解) 一丶什么是RTTI,以及RTTI怎么设计 通过第一讲,我们知道了怎么样升成一个窗口了,以及简单的消息循环. 第二讲则是主要讲解RTTI 什么是RTTI,RTTI 简单来多就是我根据一个字符串,来new一个对象 例如: CObject * pThis = (Cobject *)Getobj("CObject"); 反回的是实例对象 但是具体怎么做 首先我们要解决的问题 1.我们要知道子类的名字 2.怎么识别子类的父类 关于第…
很早之前就发现,我写的图形引擎在MFC框架程序中的刷帧率始终在60FPS左右.好在自己的程序对刷帧率的要求不是很高,所以一直没有太过纠结此事.直到今天看了别人的程序才发现应该在函数CWinApp::OnIdle()中进行刷帧操作.而之前我是先注册个时钟响应事件SetTimer(1001, 1, NULL);然后在CView::OnTimer()中或者是CDialog::OnTimer()进行刷帧操作.这样其刷帧率得不到保证.也在::OnPaint()函数中进行刷帧操作,一样的问题.之前我也觉得应…
框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解) 一丶什么是框架,以及框架的作用 什么是框架? 框架,简而言之就是把东西封装好了,使用框架开发可以快速开发程序,例如MFC程序的双击写代码. 为什么讲解框架原理 1.熟悉框架可以跟随时代脚步,因为框架万变不离其宗 2.熟悉框架,可以更快更好的逆向. 比如现在我们知道的QQ界面. 界面就是DUILIB框架写的.我们要通过逆向找到关键的内容必须熟悉框架.如果不熟悉框架,你就算会逆向也不知道从哪里入手. 二丶通过MFC但文档,理解其设计方式. 因…
项目需要,在MFC dll中使用了boost thread(<boost/thread.hpp>),LoadLibraryEx的时候出现断言错误,去掉thread库引用后断言消失. 百度google后,在CSDN中找到一个答案,先贴出来: { boost::thread + MFC DLL 問題 基本上這個問題在boost 1.38就有了,只是沒想到更新成boost 1.45後問題還是沒有解決...  如果是使用MFC开发程序 ,又剛好建立的MFC DLL工程中有使用boost::thread…
1.MFC 的概念 微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量.其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类. MFC除了是一个类库以外,还是一个框架,在vc++里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dl…
当用VC++的Application Wizard生成除了CDialog Basiced以外的应用程序时,将自动产生视图类.文档类.主帧窗口类.应用程序类等等.一般来说,程序的核心数据及操作在文档类中实现.跟界面有关的数据及操作在视图类中实现.当需要在某个类中使用不属于该类的数据时,必须要取得该数据所属类的指针.从视图类获得文档类的指针是很容易的,用GetDocument即可,这在一般的MFC文档中有介绍,也是编程中极为常用的的操作,比如视图类在进行重画等操作时,往往要用到文档类中的数据.然而只…
[前言] 把Cocos2dx渲染到另一个应用程序框架中的方法,在2.x时代有很多大神已经实现了,而3.x的做法网上几乎找不着.这两天抽空强行折腾了一下,不敢独享,贴出来供大家参考. [已知存在的问题] 程序退出时会发生非常严重的内存泄漏,博主检查了很久,但技术不够暂时无法解决.如果有大神能搞定,求告知一下做法,谢谢! 在程序从开始运行到关闭期间,有且仅有一个cocos2dx窗体存在时可以选择性无视内存泄漏.如果非常在意这一点,建议使用cocos2d-x 2.2.6这个版本,放在MFC中的内存泄漏…
框架原理第三讲,RTTCreate,运行时类型创建.(以MFC框架讲解) 通过昨天的讲解,我们已经理解了运行时类型识别是什么. 比如  CObject * pthis = (Cobject *)CreateObject("xxxx"); 这样通过字符串创建的方式是运行时类型创建. 只不过昨天为了讲解它的前半部分,举了一个简单的例子. 运行时类型识别,就是把我们的类名,和基类地址保存起来. 从一个链表中保存起来. 运行时类型创建就是把这个每个类的信息,在建立一张表来保存起来. 比如昨天我…
目录(?)[-] 需求说明 常见问题 问题分析 参考解决方法 我的解决方案 Stdafxh的原理   需求说明 C++工程的类型有很多,从VS(或VC)可以看到常见的有:Win32 Console Application.MFC Application.Win32 Project等.在创建MFC工程时,通过IDE的向导会自动帮我们创建相应的类文件和包含必需的头文件,但有时候我们需要在非MFC工程中包含MFC的库.至于为什么会有这个需要,为何不在一开始就创建MFC工程呢?可能有两种原因:1.在MF…
在上一篇博客中我们已经绘制了MFC界面,在这篇博客中我们将加入响应代码,为MFC框架加入一个最主要的功能:打开一个目录. 一.加入相关头文件 这里头文件主要包括三类:opencv头文件.批量读取文件相关的头文件.CvvImage.这里须要强调CvvImage这个头文件,这个是用来关联OpenCv和picture控件,而且这个头文件是隶属于OpenCv1.x的,在2.x版本号中已经将这个类移除.因此须要手动下载这两个文件(CvvImage.h和CvvImage.cpp),下载地址:CvvImage…
在之前的博客中我们已经实现读取用户选定的目录.并将其路径保存在对应的变量中.在这篇博文中我们将介绍怎样借助CvvImage类将图片显示在picture控件中,并自己主动读取目录下的其它图片. 一.加入"下一张"button 因为我们须要读取目录下的全部图像文件,而非某一张文件,因此有必要加入一个button来进行控制,具体功能就是:每单击一次这个button,程序就会自己主动读取下一张图片并显示在界面上. 因为之前已经具体介绍了MFC中加入Button控件的方式.这里不再赘述.加入一个…
在之前的博客中我们已经将项目中用到的算法表述完成,包含人脸检測算法以及四种性别识别算法,在这篇博客中我们将着手搭建主要的MFC框架. 一.框架概况 在这篇博文中我们将搭建最主要的MFC框架.绘制MFC界面. 二.搭建流程 1.新建一个MFCproject并配置OpenCv 打开VS.按下"ctrl+n",在新建窗体中选择"MFC应用程序",命名为GenderRecognitionMFC: 单击确定,程序类型选择"基于对话框",MFC使用选择&qu…
MFC框架各部分指针获取方式 前人在CSDN总结的,曾经帮助过我,整理总结一下,希望也能帮助一下别人. 获得CWinApp 获得CMainFrame 获得CChildFrame 获得CDocument 获得CView 在CWinApp中 AfxGetMainWnd() m_pMainWnd AfxGetMainWnd()->MDIGetActive() AfxGetMainWnd()->GetActiveFrame() SDI:AfxGetMainWnd()->GetActiveView…
<MFC dialog中加入OpenGL窗体> 最近学习了如何在MFC对话框程序中加入OpenGL窗体的方法,在这里将自己的实现过程归纳一下. 步骤零: 加入PictureControl控件 新建MFC对话框程序,删除对话框上的按钮控件的Label控件,然后向窗体添加PictureControl控件,作为绘制的窗体. 将该控件的ID设置为:IDC_RENDER 步骤一: 加入OpenGL的lib文件和头文件 在项目上单击右键,添加OpenGL的lib文件,freeglut_static.lib…
一.PATHINFO功能简述 搞PHP的都知道ThinkPHP是一个免费开源的轻量级PHP框架,虽说轻量但它的功能却很强大.这也是我接触学习的第一个框架.TP框架中的URL默认模式即是PathInfo模式.这个模式很强大,每当你访问一个网站必然带有一长串参数,但是太长又显得不太友好.对于访问一个以MVC模式搭建的网站,必然带有M.C.A三个参数即module.controller.action,这些参数需要还需要用&符号隔开,假若参数量很多,就显得特别的不友好啦.然而PathInfo模式功能就是…
在较早期的随笔<Oracle如何实现创建数据库.备份数据库及数据导出导入的一条龙操作>粗略介绍了Oracle数据库的备份还原操作,本文想从开发框架的基础上介绍Oracle数据库的脚本或者还原操作. 我们在Winform开发框架.混合式开发框架.Web开发框架等各种开发框架,底层都是支持多种数据库的,如MS SQLServer.Oracle.MySQL.SQLite.PostgreSQL等等,如下图所示. 其中SQLServer支持最为常用,而且也是最为方便备份还原的操作,而Oracle数据库这…
之前的测试框架:http://www.cnblogs.com/tobecrazy/p/4553444.html 配合Jenkins可持续集成:http://www.cnblogs.com/tobecrazy/p/4529399.html 在测试框架中使用Log4J 2 :http://www.cnblogs.com/tobecrazy/p/4557592.html 首先介绍一下grid ,selenium grid 是一种执行测试用例时使用的包含不同平台(windows.Linux.Androi…
学习过Hibernate框架的伙伴们很容易就能简单的配置各种映射关系(Hibernate框架的映射关系在我的blogs中也有详细的讲解),但是在Mybatis框架中我们又如何去实现 一对多的关系映射呢? 其实很简单 首先我们照常先准备前期的环境(具体解释请  参考初识Mybatis进行增.删.改.查 blogs )这里我就直接上代码了 主配置文件:Configuration.xml <?xml version="1.0" encoding="UTF-8" ?&…
推荐语: 今天推荐一篇华为同事的同事翻译的一篇文章,推荐的主要原因是作为一个华为员工居然晚上还能写文章,由不得小钗不佩服!!! 其中的jQuery.angular.react皆是十分优秀的框架,各有特点,各位可以看看 编辑:github 原文链接:Revealing the Magic of JavaScript jnotnull发布在 JavaScript译文 我们每天都在使用大量的工具,不同的库和框架已经成为我们日常工作的一部分.我们使用他们是因为我们不想重新造轮子,虽然我们可能并不知道这些…
在CodeIgniter框架中,CI本身自带了验证码,但是查看文档的时候,发现: 需要新建一个表,用来存储验证码信息.因为习惯了session存储验证码信息,所以我把我认为比较好看的验证码应用在了CI的框架中. 在 CodeIgniter/application/libraries/ 目录下,新建一个文件 取名 captcha.php. <?php defined('BASEPATH') OR exit('No direct script access allowed'); class Capt…
很多朋友在写java的程序的时候都喜欢用第三方的jar包和框架,有可能遇到jar包中的内容已经跟不上官方开发者文档的更新,导致部分内容出错了,这个时候可能就要放弃这个jar的使用,但是这个jar中的其他的东西都很好,这个时候我们应该怎么办呢. 首先,肯定是利用jd_gui.exe去解压jar包,然后修改源文件,再重新编译.这个方法比较率直.听起来思路不错,但是中途会遇到很多问题,比如修改完源文件之后,再编译的过程中,有包的名字和结构的问题出现,类似不再复述. 其次有一个方案是拷贝源码使用,并修改…
MFC对话框中使用CHtmlEditCtrl 感谢原帖作者: http://blog.csdn.net/tingya/article/details/2028172 我在VS2008校正了一些代码. 最近由于项目需要,需要在对话框中使用CHtmlEditCtrl控件,网上大部分的代码都是直接使用CHtmlEditView的,很少有CHtmlEditCtrl在对话框中使用的示例.网上有一个<动态表情的>,代码中存在bug,因此给出了可以编译运行的代码: (1).由于CHtmlEditCtrl的构…
//************************************ // 方法说明:    显示JPG和GIF.BMP图片 // 参数说明:    CDC * pDC           设备环境对象 // 参数说明:    CString strPath     要显示的图片路径 // 参数说明:    int x               要显示的X位置 // 参数说明:    int y               要显示的Y位置 // 返回值:      BOOL      …