自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小七的小世界

岁月给了我们使命感,十八岁就该是青春,二十八岁是责任……

  • 博客(75)
  • 资源 (4)
  • 收藏
  • 关注

转载 socket通信阻塞模式下,设置发送和接受函数超时

今天公司项目上遇到了一个问题,就是用到socket与服务器通信时,接收数据会突然有一次接收不到数据。但是项目代码使用阻塞程序写的,所以程序就一直卡在接收函数不能动。开始为了解决这个问题可以说是费劲周折。先是用了定时器,但是项目代码用的是多进程,要涉及到进程间通信的问题。 后面从网上搜到了下面这一段文字,帮助了我的大忙,真是太感谢了。在阻塞状态下,接收和发送函数同样可以设置接受发送超时时间,而只要...

2018-08-27 10:45:48 4728

转载 C++11 新的计时方法——std::chrono 大法好

计时有很多用途,比如:测试某一段代码的运行时间,时间越短,则性能相对越高。计时有很多方法,我将首先给出我以前常用的一种计时方法,然后给出我认为的最佳方法(采用了C++11的标准技术)。首先给出我以前常用的一种“传统”的计时方法:#include <ctime>using namespace std;clock_t start = clock();// do something...clock_

2017-08-14 15:37:13 13591 2

原创 Windbg的gflags.exe调试堆栈溢出,访问越界等问题。

gflags.exe是Windbg下的一个小工具,非常好用,对于调试程序隐藏的bug很有帮助。  如:我在vs2015中遇到访问越界的问题,但程序不会在越界的地方发生崩溃中断,而是在一个不可能存在访问错误的地方发生了错误,以至于无法定位问题的位置。     所以在网上看到了Windbg的方法,一开始对Windbg不是很了解,熟悉之后发现Windbg很强大,虽然只用到了其中的一个小工具g

2017-06-28 14:22:42 8168 4

原创 MFC Ribbon下禁用状态栏CMyRibbonBar右键,快速访问工具(CMFCRibbonQuickAccessToolBar),关闭ApplicationButton响应

1、禁用CMyRibbonBar右键 新建CMyRibbonBar 类,继承CMFCRibbonBar,重载OnShowRibbonContextMenu。//屏蔽CMFCRibbonBar中的右键菜单,重载OnShowRibbonContextMenu();class CMyRibbonBar : public CMFCRibbonBar{protected: virtual BO

2017-04-07 17:43:54 3968 1

原创 分割窗口后,CView 中显示影像

在新建MFC类CView1,继承CView图像显示:void CView1::OnDraw(CDC* pDC){ CString str; CZgMemDC *pMemDC = new CZgMemDC(pDC); //BITMAPINFO结构定义了Windows设备无关位图(DIB)的度量和颜色信息 BITMAPINFO *pInfo = m_pBinfo_I

2017-03-03 11:45:19 713

原创 MFC 任意分割窗口的小结(CSplitterWndEx)

在头文件MainFrm.h,中定义三个分割类对象:CSplitterWndEx m_wndSplitter;CSplitterWndEx m_wndSplitter2;CSplitterWndEx m_wndSplitter3;然后在MainFrm.cpp的OnCreateClient(……)中进行窗口的分割BOOL CMainFrame::OnCreateClient(LPCREATE

2017-03-03 11:33:56 7377 1

转载 C++中的static关键字

C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:

2017-02-14 09:37:53 453

原创 【C++11】随机数函数库random

1.随机数由生成器和分布器结合产生生成器generator:能够产生离散的等可能分布数值 分布器distributions: 能够把generator产生的均匀分布值映射到其他常见分布,如均匀分布uniform,正态分布normal,二项分布binomial,泊松分布poisson2.分布器利用运算符()产生随机数,要传入一个generator对象作为参数std::default_random_e

2017-01-06 14:53:07 1623

转载 实战c++中的vector系列--正确释放vector的内存(clear(), swap(), shrink_to_fit())

关于vector已经写的差不多了,似乎要接近尾声了,从初始化到如何添加元素再到copy元素都有所涉及,是时候谈一谈内存的释放了。是的,对于数据量很小的vector,完全没必要自己进行主动的释放,因为那样对程序的效率几乎没有影响。但是当vector中存入大量的数据后,并且都数据进行了一些操作,比如删除后,如果我们能积极主动的去释放内存,那么是非常明智的。写到这里,应该明确了size和capacity的

2016-11-11 10:51:33 670

转载 CMFCRibbonStatusBar状态栏修改

既然要显示时间,一个定时器是免不了了,在CMainFrame::OnCreate()函数中添加一个 1. SetTimer(1, 1000, NULL);      1、表示的是EventID,可以设置多个Timer,传递不同的EventID便有不同的时间间隔。 1000表示的是1000ms,每隔1000ms执行一次定时器内的代码。 第三个参数是一个DWORD值,包含定时器标识,一般设为NUL

2016-11-09 11:29:09 2703 1

转载 MFC中功能键键值(转)

MSG中的wParam 键盘常用ASCII码 ESC键 VK_ESCAPE (27) 回车键: VK_RETURN (13) TAB键: VK_TAB (9) Caps Lock键: VK_CAPITAL (20) Shift键: VK_SHIFT () Ctrl键: VK_CONTROL (17) Alt键: VK_MENU (18) 空格键: VK_SPACE (/32) 退

2016-10-11 11:45:18 1557

原创 任意多边形的面积公式

设Ω是m边形(如下图),顶点沿边界正向排列,坐标依次为 建立Ω的多边形区域向量图。 由图知坐标原点与多边形任意相邻的两个顶点构成一个三角形,而三角形的面积可由三个顶点构成的两个平面向量的外积求得。 任意多边形的面积公式 多边形计算公式的计算和原点的选取没有关系,通常可以选点(0,0)或者多边形的第一个点(这个时候比较直观了,看起来就是把多边形分成一个个三角形和加起来,读者自己可以画个

2016-09-28 15:25:25 4523

原创 UniCode下字符常见的一些问题(二)

Unicode下字符转换 .   TCHAR是一种字符串类型,它让你在以MBCS和Unicode来build程序时可以使用同样的代码,不需要使用繁琐的宏定义来包含你的代码,而char代表ASCII的字符if def UNICODE TCHAR = wcharelse TCHAR = char  所以用MBCS来build时,TCHAR是char,使用UNICODE时,TCHAR是wchar_t

2016-08-26 11:49:45 596

原创 UniCode下字符常见的一些问题(一)

1、为什幺要使用Unicode?(1) 可以很容易地在不同语言之间进行数据交换。(2) 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。(3) 提高应用程序的运行效率。  Windows 2000是使用Unicode从头进行开发的,如果调用任何一个Windows函数并给它传递一个ANSI字符串,那幺系统首先要将字符串转换成 Unicode,然后将Unicode字符串传递给操作系统。如果

2016-08-26 11:34:27 1201

转载 CString、TCHAR*、char*转换

1:将CString 转换为 TCHAR* TCHAR* CPublic::CString2TCHAR(CString &str) { int iLen = str.GetLength(); TCHAR* szRs = new TCHAR[iLen]; lstrcpy(szRs, str.GetBuffer(iLen)); str.ReleaseBuffer

2016-07-12 15:30:27 576

转载 多字节与UTF-8、Unicode之间的转换(二)

1、多字节编码转为UTF8编码 2、UTF8编码转为多字节编码 3、多字节编码转为Unicode编码 4、Unicode编码转为多字节编码 5、UTF8编码转为Unicode 6、Unicode编码转为UTF81、多字节编码转为UTF8编码 bool MBToUTF8(vector<char>& pu8, const char* pmb, int32 mLen) {

2016-07-12 15:22:12 1098

转载 Unicode字符集和多字节字符集关系(一)

Unicode字符集和多字节字符集关系  在最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集,它使用7 bits来表示一个字符,总共表示128个字符,其中包括了英文字母、数字、标点符号等常用字符。之后,又进行扩展,使用8 bits表示一个字符,可以表示256个字符,主要在原来的7 bits字符集的基础上加入了一些特殊符号例如制表符。      例如在GB-2312字符

2016-07-12 14:56:02 743

转载 CDockablePane使用心得

CFrameWndEx 在框架类的头文件中定义一个CDockablePane的数组CDockablePane m_Panes[5];//一个CDockablePane的数组CFrameWndEx:: OnCreate() 在Create函数中自动生成了一下代码,对MFC比较熟悉的这里就不讲了CMFCPopupMenu::SetForceMenuFocus(FALSE);InitUserToolb

2016-06-21 14:31:05 1142 1

转载 C++ const 的全面介绍

C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。   Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。 一、Const作用   如下表所示:    No. 作用 说明 参考代码 1 可以定义

2016-06-20 15:49:42 342

转载 MFC List Control 控件添加单元格编辑和单元格下拉列表项

原理很简单:就是在点击到列表相应单元格的时候,在相应的位置生成一个跟单元格大小相当的编辑框或者下拉列表框并贴在单元格上面而已。 实现如下: 在对话框类声明中添加如下变量和函数:头文件中添加:int e_Item; //刚编辑的行 int e_SubItem; //刚编辑的列 CEdit m_Edit; //生成单元编辑框对象bool haveeditcreate;//标志编辑框已经

2016-06-17 11:42:51 14091 2

转载 MFC 列表视图控件List Control 使用一

列表视图控件的创建MFC同样为列表视图控件的操作提供了CListCtrl类。如果我们不想在对话框模板中直接拖入List Control来使用列表视图控件,而是希望动态创建它,则要用到CListCtrl类的成员函数Create函数,原型如下:virtual BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd,

2016-06-17 11:30:41 18192 2

原创 MFC对话框扩展区域显示(可伸缩对话框区域)

一、新建对话框程序对话框布局为:黑色区域为初始显示区域。红色区域为扩展区域。二、在OnInitDialog()中添加获取区域代码:.h头文件/// 成员变量CRect m_rect; //黑色区域 + 红色区域CRect m_rtFace; // 黑色区域GetWindowRect(&m_rect); /// IDC_STATIC_TITLE,静态文本Static的IDGetDl

2016-06-16 17:47:45 3769

原创 C++动态库(Dll)的制作,导出类

1、完成类的封装: 如:CMyTestClass类/// CMyTestClass.h头文件中/************************************************************************* Copyright(c) 2000-2013 Company Name* All rights reserved.** 文件名称: CMyT

2016-06-03 16:24:20 10035 2

转载 利用OpenSSL库对Socket传输进行安全加密(RSA+AES)

利用OpenSSL库对Socket传输进行安全加密(RSA+AES) 1. 利用RSA安全传输AES生成密钥所需的Seed(32字节) 2. 利用AES_encrypt/AES_decrypt对Socket上面的业务数据进行AES加密/解密理论上只需要AES就能保证全部流程,但由于AES加密所需要的AES-KEY是一个结构。 这个一个结构,如果通过网络进行传输,就需要对它进行网络编码,Ope

2016-05-27 13:58:09 2853

原创 获取系统时间的几种方法,最高精确1ms

●【获取系统时间的几种方法,最高精确1ms】 1.硬件支持高精度计时器 ( 精确到1ms )//获取的最准确,精确到1msQueryPerformanceFrequency();QueryPerformanceCoun

2016-04-26 11:40:20 2756

原创 判断点在多边形内,水平/垂直交叉点数判别法(适用于任意多边形)

2、 水平/垂直交叉点数判别法(适用于任意多边形)注意到如果从P作水平向左的射线的话,如果P在多边形内部,那么这条射线与多边形的交点必为奇数,如果P在多边形外部,则交点个数必为偶数(0也在内)。所以,我们可以顺序考虑多边形的每条边,求出交点的总个数。还有一些特殊情况要考虑。假如考虑边(P1,P2), 1)、如果射线正好穿过P1或者P2,那么这个交点会被算作2次,处理办法是如果P的从坐标与P1,P2

2016-04-11 15:41:22 1663

原创 MFC用PostMessage在窗体间传递消息

接收消息窗体,CMainFrame 1 首先在stdafx.h中定义消息:例如#indefine WM_MYMESSAGE (WM_USER+100)WM_MYMESSAGE是定义的宏:定义消息处理函数。 消息处理函数为消息目标类的成员函数。首先应该在.h 文件中声明。这里以主窗口类为例,主窗口类名 CMainFrame,则首先在CMainFrame.h声明消息处理函数。public: af

2016-04-07 11:02:11 11021

原创 CStatic类的动态创建,以及使用风格dwStyle的介绍(二)-----CStatic控件的基本使用

CStatic控件的基本使用CStatic 继承于 CWnd,是一种特殊的窗体。他可以显示文本字符串(这也是最常用的用法)、图标、指针(cursor)、位图和增强图文元件. 通常静态控件不提供输入和输出。但是如果把他的属性设置为 SS_NOTIFY,他可以通知其父窗口的击鼠标事件。一。CStatic 用于显示文本      如果文本不变,可以直接设置其 Caption。如果

2016-03-24 17:32:57 683

原创 CStatic类的动态创建,以及使用风格dwStyle的介绍(一)

MFC中 CStatic类(静态控件类)【说明】CStatic类提供了一个Windows静态控件的功能。一个静态控件可以用来显示一个文本字符串、方框、矩形、图标、光标、位图或增强的图元文件。它可以被用来作为标签、方框或用来分隔其它的控件。静态控件通常不接收输入,也不提供输出;但是,如果它具有SS_NOTIFY风格,则它可以通知其父有关设备点击的消息。创建一个静态控件分两步。

2016-03-24 17:31:20 7954 1

原创 C++类制作动态库(dll)

1、首先新建Win32工程,选择动态库dll。2、在dllmain.cpp中添加类的头文件,3、同时在类的头文件中定义#define EXPORT_DLL _declspec(dllexport)4、紧接着修改类的定义当时class  EXPORT_DLL 类名{……}这样就会生成dll和lib。在引入动态库的工程中添加类的头文件,lib

2016-03-11 09:55:15 694

转载 MFC中单文档程序框架

新建一个Example单文档工程,应用向导可以自动地生成MFC应用的各个C++类。1. 应用类及全局对象(CExampleApp)theApp 是唯一一个在程序形成的时候就存在的全局变量,CExampleApp类继承于CwinApp类,MSDN中CwinApp的继承关系如下从继承关系当中,我们发现theApp是作为程序的实体而存在的,是单文档程序的核心。应用类封装了Wi

2016-02-25 15:44:05 2559

转载 在单文档程序中动态切换多个窗体(附图)

操作系统:Windows 7软件环境:Visual Studio 2008 SP1本次目的:在单文档程序中动态切换多个窗体      此文章转自网上,本人在最新的2008 SP1试验通过,现将步骤(转帖)和过程图片(本人自己截图)记录如下。摘要:本文通过一个程序实例描述了在VC++6.0下如何在单文档程序中通过菜单动态控制多个窗体的切换。  一、 引言  我

2016-02-25 13:58:54 704

原创 MFC对单文档进行窗口分割。

新建单文档工程,在MainFrm.cpp中添加虚函数OnCreateClient();1、在虚函数中添加代码:BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext){ // TODO: 在此添加专用代码和/或调用基类 CRect rect; GetClientRect(&re

2016-02-25 13:53:31 3054 2

转载 C++获取windows系统时间的七种方式

1.CTime类:获取系统当前时间,精确到秒[cpp] view plain copy CString str;  CTime tm;  tm=CTime::GetCurrentTime();//获取系统日期  str=tm.Format("现在时间是%Y年%m月%d日 %X");  MessageBox(str,

2016-02-01 11:08:58 26775

原创 C++获得文件夹下所有文件的路径及文件名

头文件:#include< io.h >filePath:文件夹路径vector<string> files; ////获取该路径下的所有文件 getFiles(filePath, files ); //函数char str[30]; int size = files.size(); for (int i = 0;i < size;i++) { cout<<fil

2016-01-30 12:02:28 2678 1

原创 CRect:返回一些列的矩形区域

RGNDATA结构 RGNDATA结构具有如下形式:typedef struct _RGNDATA{ /* rgnd */ RGNDATAHEADER rdh; char Buffer[1];} RGNDATA;RGNDATA 结构中包含了一个头和一个矩形数组,组成了一个区域。这些矩形从左到右、从上到下排列,没有重叠。RGNDATA:RGNDATA * pRgnD

2016-01-29 15:50:54 519

转载 常见C++笔试题目整理(含答案)0

题目46-59 46.面向对象的三个基本特征,并简单叙述之? 1. 封装:将客观事物抽象成类,每个类对自身的数据和方法实行protection(private, protected,public) 2. 继承:广义的继承有三种实现形式:实现继承(指使用基类的属性和方法而无需额外编码的能力)、可视继承(子窗体使用父窗体的外观和实现代码)、接口继承 (仅使用属性和方法,实现滞后到子类实现)。前两种

2016-01-25 16:20:11 882

转载 常见C++笔试题目整理(含答案)

网上流传的一份常见C++笔试题目汇总,供各位有找工作需要的同学参考之用,因为原文较长,遂采用连载形式,预计需要连载10期左右,有耐心的同学就请一直跟下去吧,相信一定会有所收获。提前说明一点,题目来在网络,答案是网上资料配的仅供参考,已经有许多大侠发现了其中的问题,如有同学觉得哪道题目有异议,欢迎讨论!题目60-66----------------------------------

2016-01-25 16:19:23 1047

转载 CvArr、Mat、CvMat、IplImage、BYTE转换(总结而来)

一、Mat类型:矩阵类型,Matrix。    在openCV中,Mat是一个多维的密集数据数组。可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。    Mat有3个重要的方法:         1、Mat mat = imread(const String* filename);            读取图像         2、imshow(con

2016-01-19 09:06:06 287

转载 Windows下C++多线程同步与互斥简单运用

互斥量,Mutex#include < Windows.h> #include <iostream> using namespace std; DWORD WINAPI Thread1(LPVOID lpParmeter); DWORD WINAPI Thread2(LPVOID lpParmeter); static HANDLE g_hMutex = INVALID_HAN

2015-12-23 10:10:24 429

Debugging Tools for Windows

windbg是在windows平台下,强大的用户态和内核态调试工具。相比较于Visual Studio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VS更为强大

2017-06-28

QT tcp协议下简单的客户端&&服务端

QT运用tcp协议链接客户端与服务端 ,同时利用QT的槽和信号机制建立连接

2013-03-06

c#数据库简单查询修改代码

运用C#修改,查询……数据库等功能的源代码

2011-05-23

空空如也

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

TA关注的人

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