
C++
文章平均质量分 87
htt9931
这个作者很懒,什么都没留下…
展开
-
Windows文件操作类函数
PathRemoveFileSpec#include #include #include "Shlwapi.h"void main( void ){// Path to include file spec.char buffer_1[] = "C:\\TEST\\sample.txt";char *lpStr1;lpStr1 = buffer_1;// Print the转载 2013-07-17 13:00:35 · 645 阅读 · 0 评论 -
开源日志库
c++ 开源日志库选择liblogger待选为 glog、log4cplus、log4cpp、log4cxx目前准备使用glog,使用方便,性能也不错,待进一步试验,如果有不能满足的功能就转用 log4cplus,功能很全面,不过稍复杂些。其它两个都是三年前就没更新,没好感,暂不准备使用。1.log4cplus转载 2013-08-01 15:28:49 · 749 阅读 · 0 评论 -
VS2010使用存在的问题
使用vs2010时无法显示资源编辑,并弹出提示对话框找不到rcdll.dll, 其解决方法如下:在注册表中找到:HKEY_CURRENT_USER/Software/Microsoft/Microsoft SDKs/Windows在windows项中如果存在以下两项就修改为下列示例,如果没有新建如下两项并设置相应值:X86系统:"CurrentVersion"="v7.0a原创 2013-07-14 14:35:05 · 3185 阅读 · 0 评论 -
改变 CListCtrl、CHeaderCtrl 高度、字体、颜色和背景
转载自:http://www.vckbase.com/index.php/wv/1550 一、 实现过程1.表头修改新建一个MFC类CHeaderCtrlCl,其基类为CHeaderCtrl,响应OnPaint消息实现自绘,实现代码请看源代码(由于代码较占篇幅,所以就不贴上来了,抱歉),在头文件中定义函数LRESULT OnLayout( WPARAM wP转载 2013-08-04 17:48:26 · 2353 阅读 · 0 评论 -
打印功能实现
Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这个问题很复杂,不知道如何下手。本例针对这个问题,介绍一种简单的方法实现文字串的打印功能,读者朋友可以在此基础上稍微改动一下,就可以实现文件、图像的打印功能。 一、实现方法 在Win转载 2013-07-16 17:00:16 · 1167 阅读 · 0 评论 -
解决TCP网络传输“粘包”问题
当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user datagram protocol,用户数据报协议)是无连接的,提供高效率服务。在实际工程应用中,对可靠性和效率的转载 2013-08-04 17:22:31 · 1924 阅读 · 0 评论 -
ListView常用用法2(分类总结)
1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”转载 2013-07-25 10:14:56 · 2961 阅读 · 0 评论 -
COM 组件设计与应用----起源及复合文件
微软在成功地推出 Windows 3.1 后,开始垂涎桌面办公自动化软件领域。微软的 OFFICE 开发部门,各小组分别独立地开发了 WORD 和 EXCEL 等软件,并采用“自定义结构”方式,对文件进行存储。在激烈的市场竞争下,为了打败竞争对手,微软自然地产生了一个念头------如果我能在 WORD 程序中嵌入 EXCEL,那么用户在购买了我 WORD 软件的情况下,不就没有必要再买 LOTU转载 2013-08-04 19:15:14 · 699 阅读 · 0 评论 -
COM编程入门:第一部分 什么是COM,如何使用COM
本文的目的是为刚刚接触COM的程序员提供编程指南,并帮助他们理解COM的基本概念。内容包括COM规范简介,重要的COM术语以及如何重用现有的COM组件。本文不包括如何编写自己的COM对象和接口。COM即组件对象模型,是Component Object Model 取前三个字母的缩写,这三个字母在当今Windows的世界中随处可见。随时涌现出来的大把大把的新技术都以COM为基础。各种文档中也转载 2012-09-22 15:57:01 · 1213 阅读 · 0 评论 -
CSplitterWnd类的使用
一、关于CSplitterWnd类我们在使用CuteFtp或者NetAnt等工具的时候,一般都会被其复杂的界面所吸引,在这些界面中窗口被分割为若干的区域,真正做到了窗口的任意分割。 那么我们自己如何创建类似的界面,也实现窗口的任意的分割呢 ?在VC6.0中这就需要使用到CSplitterWnd类。CSplitterWnd看上去像是一种特殊的框架窗口,每个窗口都被相同的或者不同的视图所填充。当窗转载 2013-07-25 10:27:31 · 800 阅读 · 0 评论 -
打印
PowerPrint 1.1 DLL(最老牌的dll文件,几年以前本站独家提供的,现在已经被广泛使用) http://www.pdriver.com/display.asp?key_id=1084在win2000/xp/2003server中自定义纸张打印票据 这是通过输出打印机控制命令来控制针式打印机的,通用性不够好。http://www.pdriver.com/display转载 2013-07-17 13:49:48 · 1321 阅读 · 0 评论 -
WTL入门配置
学习WTL有一段时间了,因前段时间去参加国赛耽搁几周,回来之后便继续学习,一直对VS2012有爱的我便想在12上面写WTL,上WTL的SVN看到,已经添加了对VS11 beta的支持,其实11就是2012。。于是我便down下来。网上搜集了一些WTL环境的配置的资料,都写得不错,我在这里做更详细的补充。Step1:从WTL的SVN上获取所需的文件,这里需要两份文件WTL inclu转载 2013-07-02 09:34:46 · 847 阅读 · 0 评论 -
GDI+ 性能优化之双缓冲
void CXXXButton::OnPaint(){ CPaintDC dc(this); CRect rect; this->GetClientRect(&rect); int imageW = m_pImage->GetWidth(); //m_pImage你自己的成员变量,自己去定义吧。 in转载 2013-07-11 22:16:35 · 2016 阅读 · 0 评论 -
打印机编程
1.1--打印机编程 1.1 .1 打印机介绍1.打印术语 cpi(characters Per Inch) 每英寸内所含的字符数,用来表示字符的大小、 间距。 cpl(Characters Per Line) 每行中所含的字符个数,用来在横向表示字符 的宽度和间距。 cps(Character Per Second):每秒所能打印的字符个数转载 2013-07-19 10:59:56 · 2205 阅读 · 0 评论 -
Windows窗口
总结几点VC中关于对话框小知识供大家参考。 一、对话框属性 1.Styles->Clip siblings:排除子窗口之间的相对区域,也就是说,当一个特定的窗口接收到绘图消息时,将所有重叠窗口排除在外,只重绘指定的子窗口。 Styles->Clip children:当在父窗口内绘图时,排除子窗口区域。 2.Mo转载 2013-07-23 09:30:02 · 912 阅读 · 0 评论 -
CPaneDialog的使用方法
vc++2008 feature package中CPaneDialog的使用方法1. 在资源里添加dialog时,使用formview的dialog。2. 给dialog添加类CParamsDlg,基类选CDialog,生成代码后,将代码中的CDialog改成CPanedialog3. 创建CPaneDialog,其中m_wndFileView是一个CDockablePane转载 2013-07-23 16:12:21 · 4735 阅读 · 1 评论 -
VS 常用快捷键
1: Ctrl + Enter (在光标指定位置的上面添加一行,并将光标移至新添加行的行首位置) Ctrl + Shift + Enter (在光标指定位置的下面添加一行,并将光标移至新添加行的行首位置)2: Ctrl + Shift + L (删除当前行)3: Ctrl + M + O (折叠所有的函数) Ctrl + M + P (展开所有的函数)4转载 2013-07-23 17:14:18 · 882 阅读 · 0 评论 -
多页打印
搜了N久,找到这么一篇文章:使用RichEdit打印http://www.codeproject.com/KB/printing/richeditprint.aspx?fid=13948&fr=1#xx0xx 打印总算完成了. 但是也诚如文章开头所说:The preview is sucks! 这是取自另外一篇文章的代码,我做了一些修改:[cpp转载 2013-07-29 13:12:13 · 751 阅读 · 0 评论 -
理解SetWindowOrg/SetViewportOrg/SetWindowExt/SetViewportExt
按习惯,(0,0)就原点,原点就是(0,0),但是如果用此来理解windows的map mode,就会走弯路。其实,稍微改变一下观念,windows的map mode就比较好理解了。举例说明:page space---->device spacepDC->SetMapMode(MM_LOMETRIC);pDC->SetWindowOrg(40,0);//这句“设定”page转载 2013-08-08 08:34:30 · 745 阅读 · 0 评论 -
duilib整体介绍
原创文章,转载请注明:转载自Soul Apogee本文链接地址:duilib学习笔记前段时间对皮肤引擎比较感兴趣,于是在VS第一人称快的无法直视的dot大神推荐下,看了一个小巧又好用的皮肤引擎:duilib。1. duilib简介duilib是一个开源的DirectUI界面库,简洁但是功能强大。而且还是BSD的license,所以即便是在商业上,大家也可以安心使用。现在大家转载 2013-08-08 22:08:24 · 5238 阅读 · 1 评论 -
文本数据类型强调说明
TCHAR/_TCHAR: 是微软特有的通用文本数据类型,可以根据编译选项映射为Unicode字符、MBCS字符或是ANSI字符。使用这种字符类型编写的通用代码可以编译为Unicode、MBCS、ANSI三种字符集中的任何一种。 tchar.h是微软特有的C运行时库头文件,它定义了通用文本类型_TCHAR,当我们没有定义__STDC__预编译符号时(默认时,VC没有定义此符号),表示不原创 2013-08-08 23:14:55 · 1006 阅读 · 0 评论 -
Windows文件变更监控
有的时候需要在新建、修改和删除文件时执行一些操作,这就需要监控文件的变更。http://zhanyonhu.blog.163.com/blog/static/16186044200882484143208/提出了3种方法来实现:1. 函数FindFirstChangeNotification和FindNextChangeNotification2. 系统核心工具软件,比如FileM转载 2013-11-15 09:14:23 · 1156 阅读 · 0 评论 -
常用文件路径和文件名处理函数
路径截断与合并函数 GetModuleFileName得到模块路径名PathRemoveArgs去除路径的参数PathRemoveBackslash去除路径最后的反斜杠“\”PathAddBackslash 在路径最后加上反斜杠“\”Pat转载 2014-01-14 12:56:14 · 1051 阅读 · 0 评论 -
解读WM_NOTIFY消息中的NMHDR结构
NMHDR、LPNMTREEVIEW、TVITEM结构体 树控制的数据结构 在使用树控制时需要了解两个个非常重要的数据结构TV_ITEM和TV_INSERTSTRUCT,前一个数据结构是用来表示树控制的树项信息,后一个数据结构是用来定义将树项增加到数据控制中所需要的数据内容。另外,还需要NM_TREEVIEW、 TV_DISPINFO和TV_HITTESTINFO三个数据结构,这几个数据转载 2014-01-16 12:57:59 · 8409 阅读 · 0 评论 -
模板类声明和定义为何要写一起
前言常遇到询问使用模板到底是否容易的问题,我的回答是:“模板的使用是容易的,但组织编写却不容易”。看看我们几乎每天都能遇到的模板类吧,如STL, ATL, WTL, 以及Boost的模板类,都能体会到这样的滋味:接口简单,操作复杂。我在5年前开始使用模板,那时我看到了MFC的容器类。直到去年我还没有必要自己编写模板类。可是在我需要自己编写模板类时,我首先遇到的事实却是“传统”编程方法(转载 2014-05-27 14:05:16 · 452 阅读 · 0 评论 -
由chrome源码中的arraysize想到的
在网上看到一段出自chrome的求数组长度的源代码:templatetypename T, size_t N>char (&ArraySizeHelper(T (&array)[N]))[N];#define arraysize(array) (sizeof(ArraySizeHelper(array)))google为什么不使用我们一般求数转载 2014-06-20 08:42:16 · 640 阅读 · 0 评论 -
欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2015-04-23 21:53:48 · 769 阅读 · 0 评论 -
加载动态链接库的方法
方法一:windows提供了一套函数,用于加载动态链接库中的符号(函数和变量),调用这些函数去加载: 1. HINSTANCE LoadLibrary( LPCTSTR lpLibFileName); 2. FARPROC GetProcAddress( HMODULE hModule, LPCWSTR lpProcName); 3. BOOL FreeL转载 2013-11-26 13:36:59 · 959 阅读 · 0 评论 -
读写超大文件方式
转自 http://blog.youkuaiyun.com/wangxfvc/article/details/6560620 引言文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求转载 2013-10-18 09:25:18 · 2420 阅读 · 0 评论 -
CTabCtrl 属性页
场景: 在某对话框CDlgXXX中添加一个属性页, 该属性页有2页或者多页, 以2页为例// DlgXXX.h 中声明如下代码#include "Dlg1.h"#include "Dlg2.h"#define TAB_DLG_COUNT 2...public:void InitTabCtrl();// 初始化CTabCtrlCDlg1转载 2013-08-09 13:06:35 · 841 阅读 · 0 评论 -
调试相关函数
Visual C++ 的 C 运行时刻函数库标识模板0xCD 已经分配的数据(alloCated Data)0xDD 已经释放的数据(Deleted Data)0xFD 被保护的数据(Fence Data)Visual C++ 的 C 运行时刻函数库内存块类型标识符_NORMAL_BLOCK 由程序直接分配的内存_CLIENT_BLOCK转载 2013-08-08 22:02:37 · 822 阅读 · 0 评论 -
将Switch-case语句转换成循环的表驱动结构的语句
http://www.yuanma.org/data/2008/0425/article_3016.htm 不知道从什么时候开始,switch-case语句成了代码坏味道的代名词,写代码的时候小心翼翼地避开它,看到别人代码中的switch-case就皱眉头,想想其实大可不必这样,switch-case语句并不是代码坏味道的根源,坏味道来自糟糕的代码(结构)设计,比如过多的switc转载 2013-08-09 10:06:04 · 1352 阅读 · 0 评论 -
获取文件大小的几种方法
#include #include #include #include #define _AFXDLLusing namespace std;void main(){ // 此文件在工程打开状态下为不可访问 char* filepath = "..\\test.ncb"; // 方法一 struct _stat i转载 2013-08-09 17:16:54 · 664 阅读 · 0 评论 -
常用网址
http://www.cnblogs.com/http://www.cnblogs.com/phinecos/archive/2007/11/19/964889.htmlhttp://www.cppblog.com/原创 2013-07-28 21:09:32 · 687 阅读 · 0 评论 -
调试Release发布版程序的Crash错误
调试Release发布版程序的Crash错误前言 在Windows平台下用C++开发应用程序,最不想见到的情况恐怕就是程序崩溃,而要想解决引起问题的bug,最困难的应该就是调试release版本了。因为release版本来就少了很多调试信息,更何况一般都是发布出去由用户使用,crash的现场很难保留和重现。本文将给出几个解决方案,完成对release版应用程序crash错误转载 2013-09-26 08:53:57 · 989 阅读 · 0 评论 -
Visual Studio 调试常用20个小技巧
最近碰巧读了Ivan Shcherbakov写的一篇文章,《11个强大的Visual Studio调试小技巧》。这篇文章只介绍了一些有关Visual Studio的基本调试技巧,但是还有其他一些同样有用的技巧。我整理了一些Visual Studio(至少在VS 2008下)原生开发的调试技巧。(如果你是工作在托管代码下,调试器会有更多的特性,在CodeProject中有介绍它们的文章),下面是我的转载 2013-08-10 16:44:33 · 5447 阅读 · 1 评论 -
curl应用总结
最近开发中用到curl库,虽然都是很简单的应用,但对这个库还是产生了兴趣,想学习总结一下。curl库功能非常强大,这里主要针对http应用,尤其是http文件下载做一个总结。当然了,还是主要针对Windows系统来讲。 本文是第一篇,当然要简单介绍一下curl,然后说一下Windows系统下的编译安装,以及对curl工具的简单应用。 curl是一个基于命令行的应用工具,提转载 2013-09-26 08:44:23 · 3569 阅读 · 0 评论 -
curl跨平台HttpClient
[cpp] view plaincopy// FacePlusPlus.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include using namespace std; #include "HttpClient.h" #include "转载 2015-04-23 22:03:03 · 2990 阅读 · 0 评论 -
CoInitializeEx
对于每个使用com库的线程,CoInitializeEx 至少必须调用一次, 通常也只调用一次。只要传递相同的并发标志参数,同一个线程多次调用CoInitializeEx也是允许的, 但是后面的有效调用返回S_FLASE。 要在一个线程上合理关闭com库,每一次成功调用CoInitialize 或者CoInitializeEx (包括任何返回S_FALSE的调用),都必须对应调用一次CoUnini转载 2013-07-16 15:24:47 · 6578 阅读 · 0 评论 -
VC++6.0编译环境介绍(1)
大家可能一直在用VC开发软件,但是对于这个编译器却未必很了解。原因是多方面的。大多数情况下,我们只停留在“使用”它,而不会想去“了解”它。因为它只是一个工具,我们宁可把更多的精力放在C++语言和软件设计上。我们习惯于这样一种“模式”:建立一个项目,然后写代码,然后编译,反反复复调试。但是,所谓:“公欲善其事,必先利其器”。如果我们精于VC开发环境,我们是不是能够做得更加游刃有余呢?Visual转载 2012-10-26 08:30:25 · 408 阅读 · 0 评论