- 博客(29)
- 资源 (25)
- 问答 (1)
- 收藏
- 关注
原创 int数组转换成char数组进一步思考及5种实现方法
// printfTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#include#include using namespace std;////原理: 使用库函数,拷贝内存; void method1(){ long a=129; char s[4]={0}; memcpy(s,&
2014-04-30 15:40:23 19497
原创 c++拾遗之数据类型占用内存大小总结
/*************************一:整形 int 4字节 long int 4字节 short int 2字节 unsigned int 4字节
2014-04-30 15:29:00 2867
原创 结构体定义以及其赋值和使用
--------------------------------------//结构体的赋值不一定全部赋值,但是后面用到的理所当然要必须赋值//需求导向供给struct AFX_EXT_CLASS SKDCommunicationData {BOOL m_bSucc;BOOL m_bFirst;SDataInfo m_dataInfo; //结构体SKDCo
2014-04-30 15:17:46 6500
原创 设计模式之代理模式学习
代理模式是一种结构型模式,通常源于下边的情况:人们对于复杂的软件系统常常有一种处理手法,即增加一个间接层,从而对系统获得一种更为灵活,满足特定需要的解决方案。例如下图中,B有安全控制或者是缓存控制。B中存在A根本不需要知道的控制方式。A直接使用B,结构上复杂,实现也不方便。A直接使用B的方式,控制不够灵活,可能要用到A根本不知道的方式。增加一个间接层,从而对系统获得更为灵活、满足特定需要的解决方案
2014-04-30 15:12:53 1543
原创 c++基础知识拾遗
---------------------------------------------------在C里面,&有几种意思1、当两个连在一起的时候。&&。代表的是“并且”的意思 例如a==1&&b==2.就是当a=1并且b=2的时候!2、表示引用,例如int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名3、&表示两种运
2014-04-30 15:00:00 1397
原创 typedef巧用和注意事项
--------------------------------------------------typedef声明,简称typedef,为现有类型创建一个新的名字,或称为类型别名,在结构体定义,还有一些数组等地方都大量的用到。它有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法 。使用typedef可编写出更加美观和可读的代码。所谓美观,意指typedef能隐藏笨拙的语法构造以
2014-04-30 14:58:19 2227
原创 用设计模式来代替臃肿的ifelse层层判断
-----------------------------------------------------------------在www.infoq.com/cn网站上看了一本书叫《ThoughtWorks文集》,里边有一章讲的是“对象健身操”,其中提到了“拒绝使用else关键字”。那么如何“拒绝使用else关键字”呢? 1、如果程序中只有一个else
2014-04-30 14:57:29 49746 20
原创 终极理解ON_MESSAGE和ON_NOTIFY
------《两种消息发送》--------------------SendMessage()----> ON_MESSAGE(注册的消息) ON_NOTIFY(注册的消息)SendPoMessage()---> ON_PO_MESSAGE(注册的消息)
2014-04-30 14:55:25 2698
原创 VS2003"无法启动调试 没有正确安装调试器"的解决方法
在用VS2003做项目的时候,经常调试程序,但是有时候回出现如下问题“无法启动调试,没有正确安装调试器,请运行安装程序或修复调试器”。第一次碰到还以为是运气不好,就重新用vs2003安装程序重新修复了这个工具,可以使用了。但是运行了一段时间又出现了如上这种问题,郁闷了我很久。因为修复一下这个工具要花费很多时间的,于是从网上找了资料,把问题给解决了。 主要原因:大部分问题都是因为,mdm被损
2014-04-17 09:09:25 4662 1
原创 配置sql server 2000以允许远程访问 及 连接中的四个最常见错误
配置sql server 2000以允许远程访问适合故障:1. 用sql企业管理器能访问sql server 2000(因为它是采用命名管道(named pipes)方式进行方式),但用ado.net 方式(udp)不能访问. 2. 采用ado.net方式不能远程访问.故障的可能原因有:(1).sql server 2000没有安装sql server 2000 sp3a及以上
2014-04-14 13:41:58 15424
原创 CMemoryState的使用看内存监测
确切的说,在C++中对内存的管理是挺复杂的,申请内存的同时也必须记得释放内存,new匹配delete, new[]匹配delete[].还有更困难的是在涉及到组模(Module),这点暂不讨论,等我搞清楚后会和大家分享。现在先说一下CMemoryState,如有什么不足之处,或者是错误的地方,请各位看官不吝赐教,谢谢。在MFC中,可以使用CMemoryState检测内存泄露,内存的泄露
2014-04-11 17:25:39 2797
原创 c++中new的重载看内存泄漏
#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif先看MSDN里的解释:RemarksAssists in finding memory leaks. You can use DEBUG_NEW everywhere in your progr
2014-04-11 17:25:01 1976
原创 MFC中头文件和预定义宏
1.防止头文件中定义的类、全局变量和宏的定义出现重定义 #if !defined(ASDFLAKSDJFOAIWJEF) //#ifndef () #define ASDFLAKSDJFOAIWJEF ... #endif//!defined(ASDFLAKSDJFOAIWJEF) 2.避免#include时头文件被重复打开 #if MS
2014-04-11 17:24:11 3605
原创 c++必懂的基本概念
1. 面向对象的程序设计思想是什么?答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 2. 什么是类?答:把一些具有共性的对象归类后形成一个集合,也就是所谓的类。 3. 对象都具有的二方面特征是什么?分别是什么含义?答:对象都具有的特征是:静态特征和动态特征。静态特征是指能描述对象的一些属性;动态特征是指对象表现出来的行为 ;
2014-04-11 14:06:44 9167 1
原创 从CMemFile函数学习数据处理
CMemFile函数最一般的用途是创建CMemFile对象,并通过调用CFile成员函数来使用它。值得注意的是当创建CMemFile后将自动得打开它:不要调用仅仅用于磁盘文件的CFile::Open函数,其原因在于没有使用数据成员CFile::m_hFile。内存映射文件是为了解决磁盘的读写瓶颈(I/O)。内存文件CMemFile则可以用在一些绝密的场合。很多时候,程序会产生一些临时文
2014-04-11 09:18:17 5501
原创 VC++中播放声音的方法
声音是多媒体的一个重要组成部分,在应用程序中加入声音可以使界面更友好。在VC++中可以根据不同的应用要求,用不同的方法实现声音的播放。 一.播放声音文件的简单方法 在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpsz
2014-04-11 08:55:34 5005
原创 从MFC对话框理解Windows消息机制
1、对话框基本要点和生命周期MFC对话框支持“所见即所得”编程模式。其类型分为模式对话框和非模式对话框。对话框由一个rc资源文件描述外观,通过ID与一个CPP类相连接,对话框内的控件使用基于ID的变量映射通讯。模式对话框对象被定义后,通过调用DoModal()函数来显示对话框并进行相关操作,此函数当对话框被关闭时返回。其返回值标明了对话框是点“确定”退 出,还是“取消”。非模式对话
2014-04-09 17:47:09 2539
原创 从Invalidate();方法理解windows消息机制
Invalidate标记一个需要重绘的无效区域,并不意味着调用该函数后就立刻进行重绘。类似于PostMessage(WMPAINT),需要处理到WMPAINT消息时才真正重绘。因为Invalidate之后还有其他的语句正在执行,程序没有机会去处理WMPAINT消息,但当函数执行完毕后,WMPAINT消息处理才得以进行。 Invalidate只是放一个WMPAINT消息在队列里,不做别的,所
2014-04-09 17:46:16 4371
原创 Windows批处理
批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批 处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到 的用批处理文
2014-04-09 17:45:20 1470
原创 c++异常Try catch
一、简单的例子首先通过一个简单的例子来熟悉C++ 的 try/catch/throw:1 #include //包含头文件2 #include3 double fuc(double x, double y) //定义函数4 {5
2014-04-09 17:43:57 9375
原创 VC++ 使用msado15.dll ADO数据库控件
在StdAfx.h中加入如下语句:(调用ADO控件)#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")-------------------------------------------------
2014-04-09 17:41:59 10329
原创 从ON_MESSAGE和ON_NOTIFY理解windows的消息机制
ON_COMMAND用来处理WM_COMMAND消息。老式的windows控件发送WM_COMMAND作为对父窗口的通知消息。另外,菜单,工具栏也向框架窗口发送WM_COMMAND消息。 ON_MESSAGE主要用来处理用户自定义消息。 对于某些新型的windows控件(如ListCtrl等),向父窗口发送通知消息时需要包含大量的信息,WM_COMMAND已不适应这种要求(因为
2014-04-09 17:40:58 4530
原创 STL之Map和MFC之CMap比较学习
在MFC中,有CMap相关的map类, 在 map中有map。// Maps (aka Dictionaries) class CMapWordToOb; // map from WORD to CObject* class CMapWordToPtr; // map from WORD to void* class CMapPtrT
2014-04-04 11:28:36 10655
原创 SendMessage、PostMessage原理
本文讲解SendMessage、PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级、中级、高级程序员进行理解,三个步骤分别为:1、SendMessage、PostMessage的运行机制。2、SendMessage、PostMessage的运行内幕。3、SendMessage、PostMessage的内部实现。注:理解这篇文章之前,必须先了解Windows
2014-04-02 15:04:35 2220
原创 MFC控件之ListBox
////listbox控件CListBox *pCtrl = (CListBox *)GetDlgItem( IDC_LIST1 ) ; //添加pCtrl->AddString( _T("A") ) ;pCtrl->AddString( _T("B") ) ;pCtrl->AddString( _T("C") ) ;//选中第一个pCtrl->SetCurSel( 0
2014-04-02 15:03:47 929
原创 c++记录程序运行时间
DWORD start_time=GetTickCount(); {...} DWORD end_time=GetTickCount(); DWORD Subtime = (end_time-start_time); int k = 0;如何获取代码运行时间 在调试中,经常需要计算某一段代码的执行时间,下面给出两种常用
2014-04-02 15:01:40 35941
原创 c++基本数据类型扫盲
1、有unsigned long int谈起在32位系统中,字节数为4字节。整型的每一种都有无符号和有符号两种类型(浮点float和双精度double总是带符号的),在默认情况下声明的整型变量都是有符号的类型(字符char有点特别),如果需声明无符号类型的话就需要在类型前加上“无符号”数据。无符号版本和有符号版本的区别就是无符号类型能保存2倍于有符号类型的数据,比如16位系统中一个
2014-04-02 15:00:17 5100
原创 从模态对话框和非模态对话框理解MFC
1、非模态: 虽然引自网络,但是写的很好,很清晰。无模式对话框与有模式对话框不同的是在创建后其他窗口都可以继续接收用户输入,因此无模式对话框有些类似一个弹出窗口。创建无模式对话框需要调用BOOL CDialog::Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );之后还需要调用BOOL CDialog::Show
2014-04-01 11:38:43 1146
CString::Format函数详细介绍
2015-07-07
使用cmarkup来解析xml文件的时候,需要使用的两个文件代码
2012-08-06
change the infomation of the file
2012-08-06
guess random number
2012-08-06
电脑模拟收银系统.doc
2011-06-10
软件工程 作业后勤管理子系统设计
2011-05-06
后台线程怎么访问界面线程?c++谢谢
2015-07-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人