
MFC/VS
Persisterfan
享受孤独,孤独会让你变的更强
才能不是来自于别人,而是自己的勤奋,不断学习,不断锻炼,不断总结积累。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
vs2010 如何让创建和使用动态链接库(dll)
一、创建动态链接库项目: 1、打开Microsoft Visual Studio 2010,选择File->New->Project。 2、在New Project中选择Installed Templates->Visual C++->Win32。 3、选择Win32 Console Application,设置名称:simpledll,设置解决方案名:zdddll。原创 2015-09-08 11:23:03 · 2291 阅读 · 0 评论 -
C++中类的static成员
如果类中的成员函数是static的,原创 2014-08-24 18:46:54 · 674 阅读 · 0 评论 -
有关内存的思考题
有关内存的思考题1、voidGetMemory(char*p){p=(char*)malloc(100);}voidTest(void){char*str=NULL;GetMemory(str);strcpy(str,"helloworld");printf(str);}请问运行Test函数会有原创 2016-02-03 10:54:40 · 4114 阅读 · 0 评论 -
十六进制 补码 源码
负数的十六进制如何表示:负数用十六进制表示,通常用的是补码的方式表示.十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。同我们日常生活中的表示法不一样。它由0-9,A-F组成,字母不区分大小写。与10进制的对应关系是:0-9对应0-9;A-F对应10-15;N进制的数可以用0~(N-1)的数表示,超过9的用字母A-F。正数的补是它本身;负数的补码是它本身的原创 2016-02-03 09:44:46 · 12829 阅读 · 5 评论 -
MFC 中字符分隔
MFC中几种常用的字符串分割方法http://www.qiezichaodan.com/mfc_cstring_split/原创 2016-01-28 10:55:48 · 500 阅读 · 0 评论 -
MFC 基础!!
1.UpdateData在VC里,可以为对话框上的控件设置对应的变量,如文本框可以设置对应的CString变量,但是在程序中修改文本框的内容时,对应的CString变量不会随着改变,需要调用UpdateData(TRUE)来改变变量。 类似的,程序中改变了CString变量,也需要调用UpdateData(FALSE)也改变文本框的内容。其他的控件都类似,如单选、复选按钮的状态和对应原创 2015-10-13 19:41:00 · 471 阅读 · 0 评论 -
罗辑思维为什么成功?让别人觉得亏欠你,你就赢了
罗辑思维12月31日在水立方做了一个名为《时间的朋友》的跨年演讲,罗振宇长达四个小时的思想交流,吸引了四千位观众,还有宝马、优酷等多家公司的赞助。这次跨年演讲从各方面来看都很成功,罗胖说:“这次跨年演讲,罗辑思维没钱,也没人,靠的是恩人,来现场助阵的4000名朋友,为演讲出钱出力的朋友,在场外热切关注、异地支持的朋友,这些都是罗辑思维的恩人。”罗胖说没钱是谦虚,罗辑思维刚拿到B轮融原创 2016-01-19 09:06:22 · 1869 阅读 · 0 评论 -
头文件与之实现文件的的关系~
今天在网上看到一篇解释.h与.c(.cpp)的文章,我读完后感到有些地方不妥,特此按照我的理解,给初学者一些指导~你理解简单的含义吗?关于两者以前的关系,要从N年以前说起了~ long long ago,once aupon a time .......那是一个被遗忘的年代,在编译器只认识.c(.cpp))文件,而不知道.h是何物的年代。那时的人们写了很多的.c(.cpp)转载 2016-01-22 11:50:31 · 425 阅读 · 0 评论 -
MFC中文档视图框架和文档模板之间的关系
文档对象:是用来保存数据的。 视图对象:是用来显示和编辑数据的。 应用程序框架:框架是用来管理不同文档显示界面的。例如你有一个数据网格显示界面,还有一个图形显示界面,它们的数据可能都来自你的文档,但是视图不同,怎么办用框架。为什么不用视图?为的是把界面管理独立的拿出来。文档模板:MFC把文档/视图/框架视为一体,只要你创建文档/视图框架结构的程序,必定会为你创建这三个类转载 2016-01-22 11:00:56 · 550 阅读 · 0 评论 -
多线程编程 注意事项汇总 待续..
主线程阻塞的:耗时操作都要放到子线程中操作,主线程一旦阻塞,UI停止刷新,应用停止响应用户的所有操作!!!原创 2015-12-17 21:31:10 · 478 阅读 · 0 评论 -
sscanf 的用法 及注意事项
sscanf() - 函数说明 sscanf()会将参数str的字符串根据参数format字符串来转换并格式化数据。格式转换形式请参考scanf()。转换后的结果存于对应的参数内。符的数据. 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); ///常常用来分隔字符串;以下引用:h原创 2015-11-13 15:13:55 · 1000 阅读 · 0 评论 -
AfxGetApp()的使用
参考文章:http://blog.youkuaiyun.com/willon_tom/article/details/2716564AfxGetApp( )是全局的。AfxGetApp( )这个函数可以得到当前应用进程的指针,是CWinApp*类型的,通过这个指针可以访问到这个进程中的对象。m_pMainWnd这是一个匈牙利表示法。m_p开头表示该变量为某个类的成员变量,变量类型为原创 2015-10-29 16:21:12 · 1839 阅读 · 0 评论 -
CArchive详解 及dome 源码
CArchive没有基类。CArchive允许以一个永久二进制(通常为磁盘存储)的形式保存一个对象的复杂网络。可以在对象被删除时,还能永久保存。可以从永久存储中装载对象,在内存中重新构造它们,使得数据永久保留的过程就叫做“串行化”。可以把一个archive对象看做一种二进制流。像输入/输出流一样,archive与一个文件相关联并且允许缓冲区从硬盘读出或读入数据。输入/输出流一样处理原创 2015-11-13 11:08:24 · 1507 阅读 · 0 评论 -
简单的控件自适应
建一个简单的基于对话框的项目:修改对话框模板属性 styles-->>Border 属性改为Resizing重载onsize函数效果如下:按钮的大小随着对话框的大小变化而变化!!!!!!!!! void COnsizeDemoDlg::OnSize(UINT nType, int cx, int cy){ CDialogEx::OnSize(nTyp原创 2015-10-10 21:27:11 · 590 阅读 · 0 评论 -
vc定义全局变量及extern用法
vc定义全局变量及extern用法 :全局变量一般这样定义:1。在一类的.cpp中定义 int myInt;然后再在要用到的地方的.cpp里extern int myInt;这样就可以用了。2。在stdafx.cpp中加入:int myInt;然后在stdafx.h中加入:extern int myInt这样定义以后无论在什么文件原创 2015-10-08 21:30:24 · 8390 阅读 · 0 评论 -
嵌入式面试题
4. 嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。 int *ptr; ptr = (int *)0x67a9; //将0x67a9强制转换为指向int型的指针 *ptr = 0xaa66; 5. 中断是嵌入式系统中重原创 2014-10-11 16:50:06 · 1441 阅读 · 0 评论 -
char与byte的区别
很多初学者(包括我,已经学了一年多java了)肯会对char和byte这两种数据类型有所疑惑,相互混淆,今天特地查了好多资料,对byte和char两种数据类型进行了总结和比较,先将结果与大家分享: byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );原创 2015-10-29 17:00:53 · 926 阅读 · 0 评论 -
vs2010项目属性配置
vs2010使用方案管理项目,一个解决方案下可包含多个项目。默认情况下,项目属性的设置的目录起点为项目配置文件所在的位置,实际上就是项目头文件和源文件所在的位置。vs2010中默认建立C++项目,则解决方案总目录下包含一个sln和一个项目文件夹,在vs2010编译器中生成debug和release解决方案后,总目录下还会生成对应的debug和release目录,存放最终生成的exe原创 2016-10-07 09:53:48 · 494 阅读 · 0 评论 -
VS 中相对路径的设置 和 验证
/************************************ 相对路径设置分为两种: 一.在.cpp中的添加包含路径是以当前.cpp文件的路径为相对起点的 二.在项目的属性页中配置相对路径是以当前项目的.vcpro为起点的(注意不是.sln,sln是当前解决方案的路径,一个解决方案可能包含很多个项目)********************************原创 2016-08-28 21:44:30 · 4050 阅读 · 1 评论 -
syntax error : unexpected type 'HFONT
1>d:\vs\vc\atlmfc\include\afxbutton.h(183): error C2226: 语法错误 : 意外的“HFONT”类型1>d:\vs\vc\atlmfc\include\afxbutton.h(183): error C2238: 意外的标记位于“;”之前1>d:\vs\vc\atlmfc\include\afxfontcombobox.h(45): wa原创 2016-10-07 16:26:38 · 2646 阅读 · 0 评论 -
l线程中 CreateEvent 和 SetEvent及WaitForSingleObject的两种用法
http://www.cnblogs.com/MrYuan/p/5238749.htmlCreateEvent函功能描述:创建或打开一个命名的或无名的事件对象.EVENT有两种状态:发信号,不发信号。 SetEvent/ResetEvent分别将EVENT置为这两种状态分别是发信号与不发信号。 WaitForSingleObject()等待,直到参数所指原创 2016-10-13 17:33:57 · 1739 阅读 · 0 评论 -
MFC 软件换肤使用 SkinMagic2.21
原来界面:添加效果:SkinMagicTrial.lib、SkinMagicTrial.dll和SkinMagicLib.h原创 2016-09-28 12:40:57 · 2688 阅读 · 3 评论 -
clock、GetTickCount的计时 Win7: clock的精度是1ms,但GetTickCou
WinXP:clock、GetTickCount精度一致都是 10ms;也就是10ms以内的变化无法体现出来。 Win7: clock的精度是1ms,但GetTickCount精度是15ms。最近在做服务器响应时间的测试时,开始使用GetTickCount()测出来的 时间差一直是 0;后来改成clock()正常了,发现使用 clock和GetTickCount原创 2016-09-28 14:16:20 · 2988 阅读 · 0 评论 -
容器赋值 容器使用问题:vector subscript out of range
容器使用的问题:vector subscript out of range报这个错时会弹出一个窗口,貌似内存溢出,这是什么由于vector存放的数据超出了vector的大小所造成的。解决方法如下:在Vector vector之后,不能直接通过vector[0] = "aa"vector[1] = "bb"等进行赋值,这样会导致越界。首先使用 tagSeq.resize(n)原创 2014-08-15 11:44:12 · 18619 阅读 · 0 评论 -
#include“头文件“的相对路径是相对谁的路径
问题:#include“头文件“的相对路径是相对谁的路径????是相对工程文件的路径,你可以把stdAfx.h分别复制到放到各个比如相对工程文件的路径,相对与其对应的C文件的路径,又或者是根据所建立的工程添加的文件目录树,写句#include ".\stdAfx.h" (这个代表在当前目录中找文件stdAfx.h)在\stdAfx.h处右键“Open document #include原创 2016-03-22 11:30:16 · 42805 阅读 · 6 评论 -
使用内存 调试
如图所示将变量的内存地址 ,放到内存的显示框中可查看内存中的数据(十六进制显示),然后可以大致看出变量的内容,如nSrcPort是一个short型的变量,占两个字节,那么就看前两个,e6 f8 (内存显示是从低位到高位),所以SrcPort的值就是0xf8e6,如图断电显示的值。原创 2016-03-11 23:00:19 · 368 阅读 · 0 评论 -
指针使用错误
// IP数据包typedef struct {unsigned char header_len:4; //// 4位首部长度unsigned char version:4; //4位版本unsigned char tos; // 服务类型unsigned short total_len; // 总长度unsigned short ident;原创 2016-03-11 22:44:56 · 450 阅读 · 0 评论 -
Visual Studio 配置Winpcap环境 详细
Start本文以Visual Studio 2013和WinPcap 4.1.3作为示例,对32位和64位Win7通用1、下载并安装WinPcap运行库http://www.winpcap.org/install/default.htm一些捕包软件会捆绑安装WinPcap,MentoHust也会附带WinPcap,这种情况下一般可以跳过此步。2、下载原创 2016-03-22 13:38:58 · 15197 阅读 · 5 评论 -
C语言变量声明加冒号的用法(占位符)
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几 个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域原创 2016-03-22 09:01:29 · 701 阅读 · 0 评论 -
c++ 头文件包含问题-include&class
前向声明概念(forward declaration)在程序中引入了类类型的B.在声明之后,定义之前,类B是一个不完全类型(incompete type),即已知B是一个类型,但不知道包含哪些成员.不完全类型只能以有限方式使用,不能定义该类型的对象,不完全类型只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数.前向声明应用场景原创 2016-03-21 22:57:46 · 532 阅读 · 0 评论 -
面试题简单汇总
1.Typedef 在C语言中频繁用以声明一个已经存在的数据类型的同义字。也可以用预处理器做类似的事。例如,思考一下下面的例子:#define dPS struct s * typedef struct s * tPS;以上两种情况的意图都是要定义dPS 和 tPS 作为一个指向结构s指针。哪种方法更好呢?(如果有的话)为什么??这是一个非常微妙的问题,原创 2016-02-03 11:45:44 · 474 阅读 · 0 评论 -
C/C++ 语言中.h文件和.c文件详细解析 引用 .c和.h文件的区别
预处理是编译器的前驱,作用是把存储在不同文件里的程序模块集成为一个完整的源程序.#include本身只是一个简单的文件包含预处理命令,即为把include的后面文件放到这条命令这里,除此之外,没有其它的用处(至少我也样认为).我对乾坤一笑兄的观点,十分赞同,基础的东东一定要弄明白.我下面就乾坤一笑兄的例子做讲,完备他的一些让人迷惑不解的时候~例子://a.hvo原创 2015-12-22 22:08:30 · 22281 阅读 · 9 评论 -
MFC 截图操作详解。
实现功能:当点击按钮“screenshot” 当前的窗口被截图下来保存第一部:点击按钮 的触发函数如下:void CDialogDlg::OnBnClickedButtonScreenshot() //////截图{ // TODO: 在此添加控件通知处理程序代码 bmpScreen Bmp; CRect rect; GetClientRect(&rect)原创 2015-09-15 21:33:59 · 2443 阅读 · 1 评论 -
PreTranslateMessage DoModal() ASSERT(::IsWindow(m_hWnd)
PreTranslateMessage 函数调用DoModal()在关闭对话框时会出现下面的bug!原因分析:在PreTranslateMessage里的获取对应m_hWnd,DoModal()模态对话框退出后,m_hWnd不是有效的窗口句柄,需要return rrue解决方法:在PreTranslateMessage中处理完键盘消息后,做一下两步:1.重新这只焦点原创 2015-08-25 22:56:25 · 1770 阅读 · 1 评论 -
指针的使用
(1):FRAMEDATA *pDatapData->pPara->clear();(2):FRAMEDATA *pDatapData->pPara=new PRESSUREPARAMETER;pData->pPara->clear();(1)中会报错 ,(2)正确调用指针变量中的函数 ,先new原创 2014-09-26 17:36:50 · 883 阅读 · 0 评论 -
VS2008查看消息的响应函数
选择类视图,选择要查看的类,右击属性,原创 2014-08-19 17:09:20 · 1045 阅读 · 0 评论 -
break 与 continue的使用区别
//break是结束整个循环体,continue是结束单次循环比方说:while(x++ < 10){ if(x == 3) { break; } printf("%d\r\n", x);}结果是输出 1 2 就退出了整个while循环但是如果使用continuewhile(x++ < 10){ if(x == 3原创 2014-09-22 22:27:25 · 696 阅读 · 0 评论 -
VS2010 打包生成exe文件后 运行安装文件出现 TODO:<文件说明>已停止工作并已关闭
VS2010 打包生成exe文件后 运行安装文件出现 TODO:已停止工作并已关闭 TODO: 已停止工作原因:打包的时候在文件系统中建立了空文件夹,那么该空的文件夹就不会被加载进去,导致程序运行用到该文件夹的时候就会出现了该问题。解决方法: 如建立了文件Calibration 那么先随便加载一个文件(如:3.csv)文件进去 不让它为空就行了原创 2014-08-28 09:12:15 · 12212 阅读 · 0 评论 -
MFC 编辑框边缘在背景图上显示的是黑色的边框
为编辑框添加ON_EN_CHANGE原创 2014-08-25 15:11:21 · 3566 阅读 · 0 评论 -
MFC 使Radio-button Control显示背景图
如图: 在OnCtlColor()函数中添加以下语句(P:这里重新再加载所需的位图)if ((pWnd->GetDlgCtrlID()==IDC_RADIO_STUMAN) || (pWnd->GetDlgCtrlID()==IDC_RADIO_STUOPER)){CDC memDC;memDC.CreateCompatibleDC(pDC); BITM原创 2014-08-25 14:40:42 · 2189 阅读 · 0 评论