自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HelloKandy's Blog

保持热爱,不忘初心

  • 博客(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 8104

原创 如何在程序中延时

方法一:使用sleep函数,如延时2秒,用sleep(2000);方法二:使用sleep函数的不利在于延时期间不能处理其他的消息,如果时间太长,就好象死机一样,利用ColeDateTime类和ColeDateTimeSpan类实现延时就不会出现那样的问题:ColeDateTime start_time = ColeDateTime::GetCurrentTime();ColeDa

2016-02-22 10:22:08 2824

原创 删除一个目录下的所有文件

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 2070

DllInjector.exe

1、支持dll注入 2、支持选择目标进程 3、界面美观,操作简单 4、非源码,仅仅提供exe形式的软件 ps:需要源码请联系作者

2020-01-14

wechat_avater.exe

1、使用Python编写的获取微信好友头像 2、将微信好友头像拼接成图片墙

2019-07-10

sqlite3_blob_test.zip

本项目使用vs2008编译,演示代码使用了两种方式实现插入JPG文件: 1、使用原始的sqlite3接口实现 2、使用cppsqlite3u封装的接口实现

2019-05-15

基于winInet的文件上传程序

1、基于wininet的文件上传 2、测试时可使用hfs作为http服务端程序 3、有封装好的类,可直接使用 4、可能因为字符编码问题,需要自行调整

2019-04-04

基于mongoose实现Http Server(多线程)

1、基于mongoose 6.7实现的http server 2、支持多线程(本项目使用vs2008编译) 3、附带mongoose6.7版本源代码,6.7以上的版本,多线程实现方式与现在不一样)

2019-02-14

HTTP 获取网页源代码

1、通过访问URL,获取该URL对应的网页源代码 2、将获取到的网页源代码写入本地文件

2019-01-04

CPictureEx 示例程序

1、CPictureEx 类的示例程序; 2、生成随机验证码的图片并显示; 3、该示例程序基于MFC;

2018-10-12

SpreadSheet的DLL版本(含源代码)

1、修正SpreadSheet的几个错误问题 2、将SpreadSheet封装为DLL(MFC版本) 3、提供了win32程序调用MFC版本DLL的程序示例 4、代码在vs2008下编译通过

2018-07-02

SpreadSheet简单使用实例

1、SpreadSheet是一个Excel操作封装类,使用起来比其他的更为方便。 2、修正了原版SpreadSheet几个错误问题 3、压缩包里面包含了SpreadSheet的简单使用示例。 4、使用vs2008编译通过

2018-07-02

C++的MVC模式简单示例

C++的MVC模式,界面使用VC/MFC编写。对于MVC模式初学者来说,具有较大的参考价值。

2018-04-17

C++获取程序版本信息

通过代码获得程序资源中VS_VERSION_INFO所有信息。

2016-06-15

jsoncpp的简单使用

jsoncpp的简单使用:遍历json所有键值,从字符串中解析json,从文件中读取json数据,写json数据至文件。

2016-06-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除