自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

奔跑吧,蜗牛!

记录点滴,见证成长,分享收获,共同进步

  • 博客(40)
  • 资源 (17)
  • 收藏
  • 关注

原创 什么是句柄

在Windows环境中,句柄是用来标识 项目的,这些项目包括:     *.模块(module)     *.任务(task)     *.实例(instance)     *.文件(file)     *.内存块(block of memory)     *.菜单(menu)     *.控制(control)     *.字体(font)     *.资源(

2013-12-02 21:33:15 822

转载 宏的妙用

2005-11-15 09:20:10  www.hackbase.com  来源:互联网  1、概述  C++中出了const关键字以后,宏定义常量的功能已经不在被推荐使用。这使得宏似乎没有了用武之地。实际上,宏还可以做很多事情,笔者也难以全部列举。这  1、概述  C++中出了const关键字以后,宏定义常量的功能已经不在被推荐使用。这使得宏似乎没有

2013-07-16 11:35:33 674

原创 命题空间的全局变量不能直接拖到Watch窗口查看

vc6.0调试时namespace中全局变量不能查看#includenamespace n1{int x;}void pp(){printf("x is %d\n",n1::x);}void main(){n1::x=2;pp();}调试时,可以在watch窗口中看见n1::x的值,但如果用using namespace n1

2013-07-16 11:27:09 904

转载 ambiguous symbol

多初学C++的人,对于C++中的一些基本的但又不常用的概念感到模糊,命名空间(name space)就是这样一个概念 C++中采用的是单一的全局变量命名空间。在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。 当然,你也可以使用不同的名字,但有时我们并不知道另一个变量也使用完全相同的名字;有时为了程序的方便,必需使用同一名字。比如你定义了一个变量 string user_na

2013-06-20 09:17:06 3615

转载 sizeof与strlen的区别与联系

一、sizeof    sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。    它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。    由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所

2013-06-19 08:58:42 508

转载 CloseHandle(),TerminateThread(),ExitThread()的区别

线程的handle用处:线程的handle是指向“线程的内核对象”的,而不是指向线程本身.每个内核对象只是内核分配的一个内存块,并且只能由内核访问。该内存块是一种数据结构,它的成员负责维护对象的各种信息(eg: 安全性描述,引用计数等)。CloseHandle()在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,Cl

2013-06-19 08:35:11 639

原创 深入浅出MFC关于多文档资源的字符串描述

2013-06-06 10:38:19 863

原创 WM_SETTINGCHANGE

WM_SETTINGCHANGE是个Windows的常用消息,当程序修改了SystemParametersInfo设置,则Windows就会广播此消息。但WM_SETTINGCHANGE也比较多地用在其它情形。一般情况下,wParam/uFlags时0,lParam/pszSection是WIN.INI段名或被修改部分的注册表键(只是最终的键,而不是整个串)。事实上,WM_SETTINGCHA

2013-05-30 18:49:17 5540

转载 BSS段、数据段、代码段、堆与栈

BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text segment)通

2013-05-30 17:18:02 530

原创 创建画刷的几种形式

HBRUSH hbr;第一种: hbr= CreateSolidBrush(RGB(255,0,0));                       //创建单色的画刷第二种: hbr= (HBRUSH)GetStockObject(BLACK_BRUSH);   //只能取特定颜色的画刷,如BLACK_BRUSH,GRAY_BRUSH刷第三种: hbr= CreatePa

2013-05-30 15:39:04 10188

原创 取得设备内容句柄方法汇总

Windows提供了几种取得设备内容句柄的方法。如果在处理一个消息时取得了设备内容句柄,应该在退出窗口函数之前释放它(或者删除它)。一旦释放了句柄,它就不再有效了。对于打印机设备内容句柄,规则就没有这么严格。最常用的取得并释放设备内容句柄的方法是,在处理WM_PAINT消息时,使用BeginPaint和EndPaint呼叫:hdc = BeginPaint (hwnd, &ps) ;

2013-05-30 11:51:57 2179

原创 PAINTSTRUCT结构

中文解释:该结构体包含了某应用程序用来绘制它所拥有的窗口客户区所需要的信息。PAINTSTRUCT定义typedef struct tagPAINTSTRUCT {HDC hdc;BOOL fErase;RECT rcPaint;BOOL fRestore;BOOL fIncUpdate;BYTE rgbReserved[32];

2013-05-30 09:26:03 7451

转载 关于char转换成LPCWSTR的问题

char buffer[80]; 方法一: wsprintf(buffer,L"WM_CHAR: Character = %c ",ascii_code); TextOut(hdc, 0,0,(LPCWSTR)buffer, strlen(buffer));这个只能显示第一个字母“W”方法二: sprintf((LPCWSTR)buf

2013-05-28 20:44:17 857

转载 VS2005的Command Window 调试命令的总结

调试命令的总结,挺有用的,所以转过来了。调试的时候,可以在VS2005的Command Window中输入调用。以 Unicode 形式列出内存>du 0x056769d0 原稿: http://msdn.microsoft.com/en-us/library/c338aexd.aspx[摘]“命令”窗口用于直接在 Visual Studio 集成开发环境 (IDE

2013-05-28 18:22:55 627 1

转载 OnPaint()和OnEraseBkgnd()

问题是这样产生的.在OnEraseBkGnd中,如果你不调用原来缺省 的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面, 由于它隐含的调用了OnEraseBkGnd,而你又没有处理OnEraseBkGnd 函数,这时就和窗口缺省的背景刷相关了.缺省的 OnEraseBkGnd操作使用窗口的缺省背景刷刷新背景(一般情况 下是白刷),而随后你又自己重画背景

2013-05-28 12:33:11 784

转载 C/C++中const关键字详解

为什么使用const?采用符号常量写出的代码更容易维护;指针常常是边读边移动,而不是边写边移动;许多函数参数是只读不写的。const最常见用途是作为数组的界和switch分情况标号(也可以用枚举符代替),分类如下:  常变量:  const 类型说明符 变量名  常引用:  const 类型说明符 &引用名  常对象:  类名 const 对象名  常成员函数:

2013-05-28 09:37:27 594

转载 C++ string CString 详解

前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱的string find 函数 1.3 string insert, replace, erase 2 string 和 C风格字符串 3 string 和 Charactor Traits 4 string 建议 5 小结 6 附录前言: string 的角

2013-05-28 08:55:03 1314

原创 全局变量的使用

1. 编译单元(模块):    在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用gcc,makefile等工具在linux或者嵌 入式下做开发工作的话,那么你可能非常的理解编译与连接的区别!当在VC这样的开发工具

2013-05-28 08:32:31 6532 1

原创 得到当前窗口句柄

HWND hwnd;hwnd=CreateWindow("my own windowshandle","jaycnvip",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);这是用一个句柄变量来保存新创建的窗口句柄。其它如:通过窗口标题获取窗口句柄CWnd *pWnd = FindWindow(_T("#32770"),

2013-05-27 09:53:22 10928

原创 while (PeekMessage(&msg,NULL,0,0,PM_REMOVE))

项目中用到了好多这个消息循环,很是困惑。遂百度之,难道一个窗口下可以有多个消息循环吗?百度结果都是介绍和GetMessage区别的,正经的说这个有啥作用的,少之又少。不过有一篇英文的不错,这是出处,可以参考一下http://blog.csdn.net/scofieldlau/article/details/1965517#t0。奈何我的疑惑仍然为解。最后查看MSDN,清晰一二原文

2013-05-24 14:54:01 8636 2

转载 程序员的九重境界

第一重: 在哪本电脑杂志上看见软件工程师这个职业介绍,或者走在大街上看见某某软件培训机构鼓吹培训完就能年薪10万的广告,有些羡慕那些编程序的,自己有些蠢蠢欲动。 第二重: 用控制台或者说SDK之类的东西写了一个“HELLO WORLD!”,感觉编程这个东西,太简单没难度。 第三重: 学会了简单的使用某某工具例如VC,知道怎么利用工具创建对话框之类的东西了,认为自己已经有了“扎实”的基础,出

2013-05-23 09:49:10 562

原创 关于.h和C/C++混编

1  .h 的在编译中的作用        一般而言,每个C++/C程序通常由头文件(header files)和定义文件(definition files)组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明(declaration),而定义文件用于保存程序的实现 (implementation)。而且 .c就是你写的程序文件。         一

2013-05-22 11:17:40 758

原创 PostThreadMessage 的使用

#include #include #include #define MY_MSG WM_USER+100const int MAX_INFO_SIZE = 20;HANDLE hStartEvent; // thread start event// thread functionunsigned __stdcall fun(void *param){ printf(

2013-05-20 16:04:10 4012

原创 srand()以及rand()函数用法

rand(void)用于产生一个伪随机unsigned int 整数。 srand(seed)用于给rand()函数设定种子。srand 和 rand 应该组和使用。一般来说,srand 是对 rand 进行设置。 比如: srand((UINT)GetCurrentTime()); int x = rand() % 100; 是生成 0 到 100 之间的随机数。sr

2013-05-18 11:09:28 722

原创 Slepp(0)

微软的msdn: A value of zero causes the thread to relinquish the remainder of its time slice to any other thread of equal priority that is ready to run. If no other threads of equal priority are ready t

2013-05-17 09:45:51 832

原创 消息分流器

通常的窗口过程是通过一个switch语句来实现的,这个事情很烦,有没有更简便的方法呢?有,那就是消息分流器,利用消息分流器,我们可以把switch语句分成更小的函数,每一个消息都对应一个小函数,这样做的好处就是对消息更容易管理。之所以被称为消息分流器,就是因为它可以对任何消息进行分流。下面我们做一个函数就很清楚了:void MsgCracker(HWND hWnd,int id,HWN

2013-05-16 12:29:59 627

转载 关于VC编译错误error LNK2001:的解决办法

. Windows子系统设置错误, 提示: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainWindows项目要使用Windows子系统, 而不是Console, 可以这样设置:[Project] --> [Settings] --> 选择"Link"属性页,在Project Option

2013-04-27 15:42:03 1197

原创 窗口拆分

1 CSplitterWnd类CSplitterWnd类提供一个分隔器窗口的功能,分隔器窗口是一个包含有多个窗格的窗口。窗格通常是应用程序特定的由CView派生的对象,但它也可以是具有适当子窗口ID的任何CWnd对象。一个CSplitterWnd对象通常被嵌入CFrameWnd或CMDIChildWnd父对象。你应按如下步骤创建一个CSplitterWnd对象:1.在父框架中嵌入一个C

2013-04-26 18:30:01 667

原创 解释一下SetItemData

在用树形结构的时候发现有一个SetItemData树形,MSDN解释如下Call this function to set the 32-bit application-specific value associated with the specified item.看完好生困惑,于是乎百度了一下,看到一CSDN论坛大神的解释,释然。SetItemData可以为每一行绑定一个

2013-04-26 11:00:23 8426

原创 预编译头和.pch 文件

预编译头的概念:所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里(通常是以.pch为扩展名的),这个文件就称为预编译头文件这些预先编译好的代码可以是任何的 C/C++代码--------甚至是inline的函数,但是必须是稳定的,在工程开发的过程中不会被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。预编译头的作用: 1提高便宜速度了,有了它你没有必

2013-04-26 10:07:34 762

原创 关于VC编译错误fatal error C1083的解决办法

错误描述fatal error C1083: Cannotopen precompiled header file: /'Debug/v13_3.pch/': No such file or directory 原因及分析This error results from a missing file - the compiled version of StdAfx.cpp. Visual

2013-04-26 09:58:33 1363

转载 CRichEditCtrl系列讲堂8 解决CEdit/CRichEdit中SetSel错位或者位置判断错误的问题

需求:在CEdit中查找指定文本然后选中,当然CEdit中会包含汉子以及英文字符,也包括回车换行符,然后进行查找,第一次标识并选中第一次出现的位置,再次点查找要标识并选中第二次出现位置,如果到达最后一次要从头重新查找。 解答:问题很简单可能会使用CString来获取窗口的内容GetWindowText 然后在获取到的CString中进行查找,然后使用

2013-04-25 11:26:37 1554

转载 CRichEditCtrl系列讲堂7 设置行间距源代码

根据实际测试来看,bLineSpacingRule=5时,可以设置dyLineSpacing=30来设置1.5倍行距,所以最终决定用这个设置1倍以上的非整数行间距。设置行间距源代码CRichEditCtrl m_RichEdit;LONG lineSpace=(LONG)(X*20);//X为要设置的行间距PARAFORMAT2    pf;ZeroMemory(&pf

2013-04-25 11:25:40 1260

原创 CRichEditCtrl系列讲堂6 一些小技巧

CEdit::GetSelDWORD GetSel()const;void GetSel(int& nStartChar,int& nEndChar)const;返回值:此版本返回一个双字,其低位字为起始位置,高位字为第一个未被选中的字符的位置。参数: nStartChar 指向当前选中部分的第一个字符位置,用整数表示。nEndChar 指向第一个未被选中的字符

2013-04-25 11:24:47 721

转载 CRichEditCtrl系列讲堂5 常用函数应用

函数应用1. 设置RichEdit控件的显示字体CHARFORMAT cf;ZeroMemory(&cf, sizeof(CHARFORMAT));cf.cbSize = sizeof(CHARFORMAT);cf.dwMask|=CFM_BOLD;cf.dwEffects|=CFE_BOLD; //粗体,取消用cf.dwEffects&=~CFE_BOLD; cf.dwM

2013-04-25 11:23:04 698

原创 CRichEditCtrl系列讲堂4 自己遇到的查找问题及解决方案

UpdateData(TRUE);CString str; m_RichTex.GetWindowText(str);int len=strEdit.GetLength();long index=0,end_index=0; repText.Format("%d",len);strEdit.MakeLower();str.MakeLower(); if(m_down==IDC

2013-04-25 11:21:49 730

转载 CRichEditCtrl系列讲堂3 关于版本和查找错位问题

1 如何使用richedit2.0 or richedit3.0使用原因:由于RichEdit2.0A自动为宽字符(WideChar),所以它可以解决中文乱码以及一些汉字问题方法一:(msdn上的做法,适用于用VC.NET及以后版本创建的工程)To update rich edit controls in existing Visual C++ applications to

2013-04-25 11:18:22 763

转载 CRichEditCtrl系列讲堂2 查找功能的实现

void FindText( CRicheditctrl & cRichEdit ,LPCTSTR pszText,BOOL bWholeWord,BOOL bCaseSen,BOOL bUp ){ DWORD dwOptions = 0; if (bWholeWord) dwOptions |= FR_WHOLEWORD; if (bCaseSen) dwOptions |=

2013-04-25 11:16:45 863

转载 CRichEditCtrl系列讲堂1 VC中在对话框上使用Rich Edit控件相关问题

这几天所学,所查资料进行一下小结1.设置edit只读属性    方法一:                m_edit1.SetReadOnly(TRUE);    方法二:                ::SendMessage(m_edit1.m_hWnd, EM_SETREADONLY, TRUE, 0);2.判断edit中光标状态并得到选中内容(ri

2013-04-24 23:56:04 1006

原创 开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。

// Mut.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include CRITICAL_SECTION g_cs;DWORD WINAPI WriteA(){ //DWORD i=GetCurrentThreadId(); for (int

2013-04-24 19:51:56 834

Windows核心编程 高清,带目录china-pub 出品版

高清,带目录china-pub 出品版 这是一本经典的Windows核心编程指南,从第1版到第5版,引领着数十万程序员走入Windows开发阵营,培养了大批精英。作为Windows开发人员的必备参考,本书是为打算理解Windows的C和C++程序员精心设计的。第5版全面覆盖Windows XP,Windows Vista和Windows Server 2008中的170个新增函数和Windows特性。书中还讲解了Windows系统如何使用这些特性,我们开发的应用程序又如何充分使用这些特性,如何自行创建新的特性。[1]  " src="/CuteSoft_Client/CuteEditor/Images/anchor.gif"> --------------------- 作者:cf406061841 来源:CSDN 原文:https://blog.csdn.net/cf406061841/article/details/79396210 版权声明:本文为博主原创文章,转载请附上博文链接!

2018-11-27

Windows网络编程 高清版

高清版网络编程,文档位置, https://max.book118.com/index.php?m=Search&a=index,预览完在下载哈

2018-11-09

NumPy攻略 Python科学计算与数据分析.

《NumPy攻略:Python科学计算与数据分析》介绍了70多种学习Python开源教学库NumPy的有趣方法,教会读者如何安装和使用NumPy,并了解其他一些相关概念,进而掌握NumPy arrays及其通用功能,书中的例子还涉及Matplotlib、SciPy 等Python科学计算生态系统中的其他重要软件。此外,还介绍了NumPy 和其他软件的交互、性能分析和调试、软件测试和Cython等比较高阶的话题。 《NumPy攻略:Python科学计算与数据分析》的目标读者是对Python和NumPy有基本了解,并且希望自己的水平能更上一层楼的科技工作者、工程师、程序员和分析师。

2018-01-16

程序员的数学1

如果数学不好,是否可以成为一名程序员呢?答案是肯定的。 本书最适合:数学糟糕但又想学习编程的你。 没有晦涩的公式,只有好玩的数学题。 帮你掌握编程所需的“数学思维”。 日文版已重印14次! 编程的基础是计算机科学,而计算机科学的基础是数学。因此,学习数学有助于巩固编程的基础,写出更健壮的程序。 本书面向程序员介绍了编程中常用的数学知识,借以培养初级程序员的数学思维。读者无需精通编程,也无需精通数学,只需具备四则运算和乘方等基础知识,就可以阅读本书。 书中讲 解了二进制计数法、逻辑、余数、排列组合、递归、指数爆炸、不可解问题等许多与编程密切相关的数学方法,分析了哥尼斯堡七桥问题、少年高斯求和方法、汉诺塔、斐波那契数列等经典问题和算法。引导读者深入理解编程中的数学方法和思路。 本书还对程序员和计算机的分工进行了有益的探讨。读完此书,你会对以程序为媒介的人...

2017-12-19

程序员的数学2 概率统计

程序员的数学2:概率统计》沿袭《程序员的数学》平易近人的风格,用通俗的语言和具体的图表深入讲解程序员必须掌握的各类概率统计知识,例证丰富,讲解明晰,且提供了大量扩展内容,引导读者进一步深入学习。 《程序员的数学2:概率统计》涉及随机变量、贝叶斯公式、离散值和连续值的概率分布、协方差矩阵、多元正态分布、估计与检验理论、伪随机数以及概率论的各类应用,适合程序设计人员与数学爱好者阅

2017-12-19

程序员的数学

如果数学不好,是否可以成为一名程序员呢?答案是肯定的。 本书最适合:数学糟糕但又想学习编程的你。, 没有晦涩的公式,只有好玩的数学题。, 帮你掌握编程所需的“数学思维”。, 日文版已重印14次!, 编程的基础是计算机科学,而计算机科学的基础是数学。因此,学习数学有助于巩固编程的基础,写出更健壮的程序。, 本书面向程序员介绍了编程中常用的数学知识,借以培养初级程序员的数学思维。读者无需精通编程,也无需精通数学,只需具备四则运算和乘方等基础知识,就可以阅读本书。, 书中讲 解了二进制计数法、逻辑、余数、排列组合、递归、指数爆炸、不可解问题等许多与编程密切相关的数学方法,分析了哥尼斯堡七桥问题、少年高斯求和方法、汉诺塔、斐波那契数列等经典问题和算法。引导读者深入理解编程中的数学方法和思路。, 本书还对程序员和计算机的分工进行了有益的探讨。读完此书,你会对以程序为媒介的人机合作有更深刻的理解。

2017-12-19

Qt SQLite开源浏览工具源码

This file is an amalgamation of many separate C source files from SQLite ** version 3.21.0. By combining all the individual C code files into this ** single large file, the entire code can be compiled as a single translation ** unit. This allows many compilers to do optimizations that would not be ** possible if the files were compiled separately. Performance improvements ** of 5% or more are commonly seen when SQLite is compiled as a single ** translation unit. ** ** This file is all you need to compile SQLite. To use SQLite in other ** programs, you need this file and the "sqlite3.h" header file that defines ** the programming interface to the SQLite library. (If you do not have ** the "sqlite3.h" header file at hand, you will find a copy embedded within ** the text of this file. Search for "Begin file sqlite3.h" to find the start ** of the embedded sqlite3.h header file.) Additional code files may be needed ** if you want a wrapper to interface SQLite with your choice of programming ** language. The code for the "sqlite3" command-line shell is also in a ** separate file. This file contains only code for the core SQLite library.

2017-12-08

VC++ IO完成端口 网络考试系统(服务器+用户端+数据库+源代码)

  I/O完成端口是一种机制,通过这个机制,应用程序在启动时会首先创建一个线程池,然后该应用程序使用线程池处理异步I /O请求。这些线程被创建的唯一目的就是用于处理I/O请求。对于处理大量并发异步I/O请求的应用程序来说,相比于在I/O请求发生时创建线程来说,使 用完成端口(s)它就可以做的更快且更有效率。

2014-07-11

高质量C++编程指南

高质量C++编程指南

2013-03-27

namespace命名空间

详细深入的命名空间讲解,你可以完全掌握命名空间

2013-03-13

InnoSetup入门(PDF )

超详细系统讲解Inno安装包制作的全过程

2013-03-08

VC_MFC串口通信编程详解

很详细的分析了串口编程的Win32和MFC函数用法,并附带例子

2013-03-08

C++编程惯用法——高级程序员常用方法和技巧

不错的资料对于规范编程格式,C++编程惯用法——高级程序员常用方法和技巧

2013-01-21

Windows调试技巧

本资源深入细致的讲解了一些Windows调试技巧,让我们在程序编写过程中能够迅速定位错误

2013-01-10

WTL 课程讲解(附代码)

对WTL的讲解资料很少,本资源分为9个部分讲解WTL,每部分都有详细的代码。

2013-01-10

C&C++ 语言参kao

很好的查阅资料,可以查阅各个函数的用法。有利于应用开的

2012-07-12

空空如也

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

TA关注的人

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