- 博客(17)
- 资源 (12)
- 收藏
- 关注
原创 OutputDebugString 封装
OutputDebugString使用时只能输入一个参数,在实际使用中带来很大的不便。所以有必要对其进行改造:// OutputDebugString_test.cpp : 定义控制台应用程序的入口点。//#include #include void OutputDebugStringEx(const wchar_t *strOutputString, ...){ va_list
2016-02-29 18:23:32 5534 5
原创 设计模式之适配器模式
在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 我们生活中常常听到的是电源适配器,它是用于电流变换(整流)的设备。适配器的存在,就是为了将已存在的东西(接口)转换成适合我们的需要、能被我们所利用。在现实生活中,适配器更多的是作为一个中间层来
2016-02-26 18:05:28 586
原创 观察者模式
观察者模式(有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。实现观察者模式有很多形式,比较直观的一种
2016-02-26 11:47:15 486
原创 工厂方法模式
工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题。首...
2016-02-26 10:45:21 502
原创 简单工厂模式
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。优点工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外...
2016-02-26 10:10:35 461
原创 VC 如何向编辑控件中添加文本
由于没有CEdit:: AppendText函数,用户只好自己做此项工作。调用CEdit:: SetSel移动到编辑控件末尾,然后调用CEdit:: ReplaceSel添加文本。下例是AppendText 的一种实现方法:void CMyEdit:: AppendText (LPCSTR pText){ int nLen=GetWindowTextLength (); SetFocus
2016-02-22 10:48:34 843
原创 为什么要使用GetSafeHwnd()函数
当我们想得到一个窗口对象(CWnd的派生对象)指针的句柄(HWND)时,最安全的方法是使用GetSafeHwnd()函数,通过下面的例子来看其理由:CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到资源管理器HWND hwnd = pwnd->m_hwnd; //得到它的HWND这样的代码当开始得到的pwnd为空的时候就会出现一个“G
2016-02-22 10:25:37 8114
原创 如何在程序中延时
方法一:使用sleep函数,如延时2秒,用sleep(2000);方法二:使用sleep函数的不利在于延时期间不能处理其他的消息,如果时间太长,就好象死机一样,利用ColeDateTime类和ColeDateTimeSpan类实现延时就不会出现那样的问题:ColeDateTime start_time = ColeDateTime::GetCurrentTime();ColeDa
2016-02-22 10:22:08 2825
原创 删除一个目录下的所有文件
BOOL DeleteDirectory(LPCTSTR DirName){ CFileFind tempFind; //声明一个CFileFind类变量,以用来搜索 char tempFileFind[200]; //用于定义搜索格式 sprintf(tempFileFind,"%s\\*.*",DirName); //匹配格式为*.*,即该目录下的所有文件 BOOL IsFind
2016-02-22 10:19:08 1076
原创 BOOL与bool的区别
1、类型不同 BOOL为int型 bool为布尔型 2、长度不同 bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节 3、取值不同 bool取值false和true,是0和1的区别 BOOL取值FALSE和TRUE,是0和非0的区别 bool是标准C++数据类型,可取值true和false。单独占一个字节, 如果数个boo
2016-02-22 10:15:14 418
转载 VS2008 快捷键
通用快捷键:1、自动排版(类似VC6中的Alt+F8)编辑.格式化选定内容 Ctrl + K,Ctrl + F 根据周围的代码行,正确缩进选定的代码行。2、注释与去掉注释功能。编辑.注释选定内容 Ctrl + K,Ctrl + C 使用编程语言的正确注释语法将代码的当前行标记为注释。编辑.取消注释选定内容 Ctrl + K,Ctrl + U 从代码的当前行中移除注释语法。将插入点移动到...
2016-02-22 10:10:59 438
原创 在Windows Mobile中动态修改菜单
1、创建并显示菜单,先在资源里添加菜单,然后如下代码SHMENUBARINFO mbi;ZeroMemory(&mbi, sizeof(SHMENUBARINFO));mbi.cbSize = sizeof(SHMENUBARINFO);mbi.hwndParent = m_hWnd;mbi.hInstRes = ::AfxGetInstanceHandle();mbi.dwFlag
2016-02-22 10:08:05 635
原创 【Debug】fatal error LNK1112: 模块计算机类型“THUMB”与目标计算机类型“ARM”冲突
错误提示:fatal error LNK1112: 模块计算机类型“THUMB”与目标计算机类型“ARM”冲突解决办法:1、新建项目时,在"平台"->"选择要添加到当前项目中的 Platform SDK。"中,把"已安装的 SDK"全部添加到"选定的 SDK"。
2016-02-22 10:03:00 1731
原创 VC++ 屏蔽按ENTER或者ESC键退出程序
通过重载PreTranslateMessage函数屏蔽回车和ESC的消息。关于PreTranslateMessage函数: MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,我们可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来。只有穿过消息队列的消息才受PreTranslateMessage()影响,采
2016-02-22 09:50:30 2648
原创 使用VA快捷键快速添加注释
写代码,不可避免的需要编写文件说明,手工编写带来的是效率与格式不统一的问题,使用VA快捷键来处理实在是最方便不过了。 “VAssistX”–>”Visual VAssistX Options”然后选择Suggestions,再点击”Edit VA Snippets”。在打开的窗口中点击“新建”图标,在这就可以更改你的显示样式了。// -------...
2016-02-15 15:15:22 2113
原创 vs2013 和 vs2015 产品密钥
Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9Visual Studio Premium 2013 KEY(密钥):FBJVC-3CMTX-D8DVP-RTQCT-92494Visual Studio Professional 2013 KEY(密钥):XDM3T-W3T3V-MGJWK-8BFVD-G...
2016-02-04 11:38:39 1015
原创 Windows 如何注册自己的伪协议
介绍伪协议前先介绍一下协议是什么。这里说到的协议不是指网络上的TCP/IP协议,而是操作系统提供支持的一种协议,类似标准协议HTTP, FTP。自定义协议叫做伪协议。如何注册一个伪协议?操作系统的协议都写在注册表[HKEY_CLASSES_ROOT]的KEY值下,我们在注册表内添加一项对我们软件支持的协议标志即可!
2016-02-02 14:58:25 2072
sqlite3_blob_test.zip
2019-05-15
基于winInet的文件上传程序
2019-04-04
基于mongoose实现Http Server(多线程)
2019-02-14
SpreadSheet的DLL版本(含源代码)
2018-07-02
SpreadSheet简单使用实例
2018-07-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人