
VS2017
luck_horse
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
VS常见调试错误
1. 不能从const char *(或者char数组)转换为LPCWSTRa) 解决: _T("TEST");b) 原因:在UNICODE(宽字节)字符集 typedef unsigned short wchar_t ,占2个字节;ANSI char 占一个字节;而系统默认使用UNICODE字符集c) 参见http://blog.csdn.net/p...转载 2018-12-15 17:07:19 · 2078 阅读 · 0 评论 -
VS2017调试时如何查看内存
程序进入调试状态后按如下操作即可:原创 2018-12-11 15:19:28 · 5185 阅读 · 0 评论 -
VS2017-VC++中慎用sizeof
调试程序时老是报错:堆栈溢出。先暂时记录下来,以后再研究:原创 2018-12-11 15:24:27 · 911 阅读 · 1 评论 -
ON_MESSAGE,ON_COMMAND和ON_NOTIFY的区别和联系
ON_COMMAND是菜单和工具栏项处理消息的宏 ON_MESSAGE是处理自定义消息的宏 ON_NOTIFY 是控件向其父窗口发送消息处理的宏 对这几个消息的理解要先了解一下Window消息的背景。 在Windows3.1里,控件会将mouse, keybord等等的消息通知它的父窗口,使用的消息就只有WM_COMMAND, 事件种类和...转载 2018-12-17 16:49:20 · 448 阅读 · 0 评论 -
ON_NOTIFY消息中的id坑了我一天
使用CSplitterWnd切割窗口之后,在View类中使用CListCtrl Create了一个ListView试图在ListView中获取Windows消息,发现怎么也捕获不到使用vs2008添加鼠标消息默认使用NO_NOTIFY_REFLECT消息驱动BEGIN_MESSAGE_MAP(CUnitView, CListView) ON_WM_CREATE() ...转载 2018-12-17 16:53:11 · 699 阅读 · 0 评论 -
视口和窗口的理解方法
首先,视口坐标是表示物理坐标的,窗口坐标是表示逻辑坐标的,并且,任何时候视口坐标和窗口坐标都是一一对应的(即:左上角坐标和右下角坐标是一一对应的)。比如:设置视口坐标(0,0,50,50)(表示:(左上角X,左上角X,宽度,高度)),设置窗口坐标为(-100,-100,100,100),那么,窗口坐标(-100,-100)对应视口坐标(0,0),窗口坐标(0,0)对应视口坐标(50,50),第二,...转载 2018-12-17 17:37:27 · 1196 阅读 · 2 评论 -
VC++技术内幕(第四版)笔记--SetWindowExt和SetViewportExt
CRect rectClient; GetClientRect(rectClient); pDC->SetMapMode(MM_ANISOTROPIC); pDC->SetWindowExt(CSize(1000,1000)); pDC->SetViewportExt(rectClient.right,-...转载 2018-12-17 17:40:16 · 264 阅读 · 0 评论 -
VC调试信息输出 TRACE宏
TRACE宏对于VC下程序调试来说是很有用的东西,有着类似printf的功能;该宏仅仅在程序的DEBUG版本中出现,当RELEASE的时候该宏就完全消失了,从而帮助你调试也在RELEASE的时候减少代码量。使用非常简单,格式如下: TRACE("DDDDDDDDDDD"); TRACE("wewe%d",333); 同样还存在TRACE0,TRACE1,TRA...转载 2018-12-11 14:49:26 · 372 阅读 · 0 评论 -
DbgView软件 查看VC++ MFC 程序的打印信息
DbgView软件 查看VC++ MFC 程序的打印信息一、在写VC++ MFC程序的调制过程中,需要跟踪打印信息,但在MFC中用printf不知道在哪里看打印信息,今天介绍一款软件,可以查看对应的打印信息,她就是DbgView,DbgView是Sysinternals公司的系列调试工具。debugview 可以捕获程序中由TRACE(debug版本)和OutputDebugString输出的...转载 2018-12-11 14:52:11 · 334 阅读 · 0 评论 -
C++ - RTTI(RunTime Type Information)运行时类型信息 详解
RTTI, RunTime Type Information, 运行时类型信息, 是多态的主要组成部分, 通过运行时(runtime)确定使用的类型, 执行不同的函数,复用(reuse)接口.dynamic_cast<>可以 使基类指针转换为派生类的指针, 通过判断指针的类型, 可以决定使用的函数.typeid(), 可以判断类型信息, 判断指针指向位置, 在多态中, 可以判断基...转载 2018-12-17 15:32:24 · 397 阅读 · 2 评论 -
C++ exception 类继承结构图
转载 2018-12-17 15:29:23 · 687 阅读 · 1 评论 -
C/C++ 类默认生成的四个函数
序:对于一个空类,编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝构造函数、赋值函数一,默认构造函数 默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就会使用默认构造函数。 如果用户定义的类中没有显式的定义任何构...转载 2018-12-10 15:07:22 · 1397 阅读 · 0 评论 -
CString GetBuffer() GetString()
今天遇到了个棘手的问题, 弄了半天才搞定,在此记录下。问题描述:MBCS工程中一个函数:void fun(CString& str1){ char *pstr = str1.GetBuffer();}调用时:CString str("192.168.1.1");fun(str)然而在fun中却只能获取第一个字符, 其余都空白:“1 ...转载 2018-12-15 17:07:08 · 2162 阅读 · 0 评论 -
The MD5 Message-Digest Algorithm
[Docs] [txt|pdf] [draft-rsadsi-ri...] [Tracker] [Diff1] [Diff2] [IPR] [Errata]Updated by: 6151 INFORMATIONALErrata ExistNetwork Working Group R. RivestRe...原创 2018-12-20 16:18:03 · 1425 阅读 · 0 评论 -
InterlockedIncrement函数详解
InterLockedIncrement and InterLockedDecrement实现数的原子性加减。什么是原子性的加减呢?举个例子:如果一个变量 Long value =0;首先说一下正常情况下的加减操作:value+=1;1:系统从Value的空间取出值,并动态生成一个空间来存储取出来的值;2:将取出来的值和1作加法,并且将和放回Value的空间覆盖掉原值。加法结束...转载 2018-12-20 18:27:40 · 1437 阅读 · 0 评论 -
C++ 虚拟析构函数
转自:http://see.xidian.edu.cn/cpp/biancheng/view/247.html当派生类的对象从内存中撤销时一般先调用派生类的析构函数,然后再调用基类的析构函数。但是,如果用new运算符建立了临时对象,若基类中有析构函数,并且定义了一个指向该基类的指针变量。在程序用带指针参数的delete运算符撤销对象时,会发生一个情况:系统会只执行基类的析构函数,而不执行派生类...转载 2018-12-10 09:09:53 · 1205 阅读 · 0 评论 -
c++对象模型-虚拟析构函数
看《inside the c++ object model》第二章,汇总一下一些知识点( 转自:http://www.cppblog.com/aaxron/archive/2010/12/23/137293.html)作为通常原则,如果一个类定义了虚函数,那么它的析构函数就应该定义成虚函数。因为定义了虚函数则意味着这个类会被继承,并且会通过基类的指针指向子类,从而得到多态。因此,基类的析构...转载 2018-12-10 09:14:05 · 212 阅读 · 0 评论 -
MFC基础类及其层次结构
从类CComdTarget层层派生出绝大多数MFC中的类,其层次结构为下图所示.从根类Cobject层层派生出绝大多数MFC中的类,其层次结构为下图所示.MFC中重点类其中,CObject类是MFC提供的绝大多数类的基类。该类完成动态空间的分配与回收,支持一般的诊断、出错信息处理和文档序列化等。 CCmdTarget类主要负责将系统事件(消息)和窗口事件(消息)发送给响...转载 2018-12-15 17:06:01 · 269 阅读 · 1 评论 -
C++:类中的赋值函数
先来看一个例子: 1 #include<iostream> 2 #include<string> 3 using namespace std; 4 class Student{ 5 public: 6 Student(){ 7 cout<<"调用默认构造函数"<<endl; 8 }; 9 ...转载 2018-12-10 14:58:03 · 2017 阅读 · 0 评论 -
C++:构造函数2——拷贝构造函数
前言:拷贝构造函数是C++中的重点之一,在这里对其知识进行一个简单的总结。一、什么是拷贝构造函数在C++中,对于内置类型的变量来说,在其创建的过程中用同类型的另一个变量来初始化它是完全可以的,如:1 int value=100;2 int new_value=value;//在变量new_value创建的同时用同类型的变量value来初始化它那么对于自定义的数据类型来说,是否可...转载 2018-12-10 15:02:30 · 419 阅读 · 0 评论 -
关于VC单选按钮不能设置变量以及Group属性的设置问题
单选按钮在没有设置Group属性时,在MFC ClassWizard->Member Variables中看不到按钮控件的ID号,设置了Group属性后就可以看到ID号并能设置变量。Group属性是用来对单选按钮进行成组设置的。 设置Group属性的Radio是本组的第一个,ID大于本Radio ID的Radio都是本组的radio(但是小于另一个设置Group属性的Radio ID)。...转载 2018-12-11 20:23:28 · 795 阅读 · 0 评论 -
VC学习笔记 -单选按钮控件(Ridio Button)的使用
在VC++编程过程中,查资料是一个苦差事,案边放了一摞书左翻右翻好是烦人。一赌气就把一些常用的小技巧自己总结了一下,虽费了些功夫,但对以后编程很有好处。现拿出来与大家共享,以后积累多了,作一个CHM电子书,用的时候翻阅实在很方便。注:有些内容来源于网上文章,名字我都没记下来,这里向作者致谢了!VC学习笔记1:按钮的使能与禁止用ClassWizard的Member Variables为按钮定义...转载 2018-12-11 20:24:36 · 1030 阅读 · 0 评论 -
(译+原)std::shared_ptr及std::unique_ptr使用数组
转载请注明出处:http://www.cnblogs.com/darkknightzh/p/5462363.html参考网址:http://stackoverflow.com/questions/13061979/shared-ptr-to-an-array-should-it-be-used 默认情况下,std::shared_ptr会调用delete来清空内存。当使用new...转载 2018-12-28 18:46:42 · 1607 阅读 · 0 评论 -
MFC Static静态文本控件不能添加变量(variable) vs( visual studio)
尝试将静态文本控件的ID改成其他名字即可·,不要使用默认名字。转载 2019-01-25 10:09:10 · 1294 阅读 · 0 评论 -
_tcscpy_s函数引发的问题
网上下载的VS2017 VC++工程,发现一段代码老是报堆破坏的的错误,当时没去理会,自己写了一段代码重新实现了需要的功能: if(dwDevName != NULL) { /* if(*sValue) { ...原创 2019-01-21 20:18:44 · 3911 阅读 · 0 评论 -
STATIC_DOWNCAST
In this articleSyntax Parameters Remarks Requirements See Also Casts pobject to a pointer to a class_name object.SyntaxCopySTATIC_DOWNCAST(class_name, pobject )Parameters class...原创 2019-02-01 17:28:43 · 264 阅读 · 0 评论 -
VC中退出应用程序-几种很有用的方法
1、OnOK()或OnCancel()//只对对话框有用2、PostQuitMessage(0);//最常用 PostMessage(WM_QUIT,0,0);//最常用 ::SendMessage(AfxGetMainWnd()->m_hWnd,WM_CLOSE,0,0);//最常用 ::PostMessage(AfxGetMainWnd()-&g...转载 2019-02-01 19:07:25 · 1374 阅读 · 0 评论 -
严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen('fscanf'、strcmp):This function or variable may be unsafe. 最全解决办法
解决fopen、fscanf 在VS中要求替换为fopen_s、fscanf_s的最全解决办法 -------------- ps:在使用MFC中遇到上述问题,可以通过方法三解决方法一:在程序最前面加#define _CRT_SECURE_NO_DEPRECATE;方法二:...转载 2019-01-22 19:15:14 · 90119 阅读 · 21 评论 -
浅谈wcscpy_s之用法
wcscpy_s是一个能够拷贝宽字符类型字符串的安全函数。它返回一个error_t类型的值。 wcscpy_s的函数原型为: 1 error_t wcscpy_s(wchar_t *strDestination,size_t numberOfCharacters,const wchar_t *strSource); 其中strDestination为指向将要复制字符串的目的缓冲区...转载 2019-01-22 19:17:25 · 15676 阅读 · 1 评论 -
Win API函数SetWindowOrgEx与SetViewportOrgEx
OffsetWindowOrgEx - 移动窗口坐标原点引用自:http://www.cnblogs.com/aoniao/archive/2012/06/18/2553762.html在阅读学习Charles Petzold大牛名作《Programming Windows,5th Edition》过程中,对于第5章中讲解的SetWindowOrgEx与SetViewportOrgEx一直...转载 2019-06-27 16:34:06 · 297 阅读 · 0 评论 -
getaddrinfo函数
gethostbyname和gethostbyaddr这两个函数仅仅支持IPv4,getaddrinfo函数能够处理名字到地址以及服务到端口这两种转换,返回的是一个sockaddr结构的链表而不是一个地址清单。这些sockaddr结构随后可由套接口函数直接使用。如此一来,getaddrinfo函数把协议相关性安全隐藏在这个库函数内部。应用程序只要处理由getaddrinfo函数填写的套接口地址结构...转载 2019-07-05 10:29:21 · 334 阅读 · 0 评论 -
MFC中进度条控件的使用方法
进度条控件是程序开发中基础控件之一,常用于显示程序的进度。在进行程序安装、文件传输时经常用到。其用法也比较简单固定。 转自:http://jingyan.baidu.com/article/95c9d20da97a45ec4e756114.html...转载 2019-01-24 20:18:16 · 1421 阅读 · 0 评论 -
C++操作剪贴板
剪贴板内置在windows中,并且使用系统的内部资源RAM,或虚拟内存来临时保存剪切和复制的信息,可以存放的信息种类是多种多样的。剪切或复制时保存在剪贴板上的信息,只有再剪贴或复制另外的信息,或停电、或退出windows,或有意地清除时,才可能更新或清除其内容,即剪贴或复制一次,就可以粘贴多次。 下面介绍在C++中怎么操作剪贴板,主要是写入数据和获取数据,对剪贴板的操作可以看做是一...转载 2019-01-14 14:48:40 · 3703 阅读 · 0 评论 -
VS2017-VC++校验和计算小工具
运行界面如下:输入格式要求:必须是ascii代表数字的字符(0-F,大小写不限),必须成双,可以有空格。主要代码:CMFCApplicationBleApAnalogDlg::CMFCApplicationBleApAnalogDlg(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_MFCAPPLICATIONBLEAPANALOG_...原创 2019-01-14 10:51:09 · 1868 阅读 · 0 评论 -
【网络协议】TCP分段与UDP/IP分片 (MTU最大传输单元,MSS最大分段大小)
我们在学习TCP/IP协议时都知道,TCP报文段如果很长的话,会在发送时发生分段,在接受时进行重组,同样IP数据报在长度超过一定值时也会发生分片,在接收端再将分片重组。 我们先来看两个与TCP报文段分段和IP数据报分片密切相关的概念。 MTU(最大传输单元) MTU前面已经说过了,是链路层中的网络对数据帧的一个限制,依然以以太网为例,MTU为1500个字节。一个IP数...转载 2018-12-28 18:49:51 · 497 阅读 · 0 评论 -
对SetViewportOrg和SetWindowOrg的理解
对SetViewportOrg和SetWindowOrg的理解:void CMainWindow::OnLButtonDown(UINT nFlags,CPoint point){ CRect rect; GetClientRect(&rect); CClientDC dc(this); dc.SetViewportOrg(0,rect.Height());//把...转载 2018-12-18 14:07:31 · 575 阅读 · 0 评论 -
MFC中的GDI绘图
MFC中的GDI绘图 目录(?)[+]什么是GDI 什么是DC MFC中与GDI有关的类 获取设备环境 设置坐标映射 创建绘图工具并选入DC 调用DC绘图函数绘图 三坐标映射实例一.关于GDI的基本概念什么是GDI?Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器...转载 2018-12-18 14:45:43 · 389 阅读 · 0 评论 -
VC里的集合类、链表类、映射类
集合类是用来容纳和处理一组对象或标准数据类型变量的C++类。每个集合类对象可以看作一个单独的对象。类成员函数可作用于集合的所有元素。MFC提供两种类型的集合类:基于模板的集合类、非基于模板的集合类。这两种集合类对用户来说非常相似。基于模板的集合所包含的元素是用户自定义的数据结构或者说是抽象的数据结构,它以数组、链表和映射表三种方式组织用户自定义的数据结构。使用基于模板的集合类需要用户作一些...转载 2018-12-18 14:51:15 · 350 阅读 · 0 评论 -
MFC提供的集合类CStringArray类和CPtrArray类
1.CStringArray类CStringArray类可以用来存储CString类型的对象,而且它的容量是可以动态增加的。CStringArray CObject └CStringArray CStringArray类支持CString对象数组。CStringArray的成员函数类似于CObArray类的成员函数。由于具有这些相似性,你可以参考关于CObArray的参考...转载 2018-12-18 14:52:50 · 415 阅读 · 0 评论 -
TCP传输的单个报文最大字节(MSS和MTU)
TCP和14481448字节是实际场景下,单个TCP包的实际运载能力。也就是说,实际场景下,上层调用send(1000KB),下层会把这1000KB封装成多个TCP包进行发送。单个TCP包每次打包1448字节的数据进行发送。详细的TCP在传输情景wireshark截图如图1 图1每个TCP包在理论上应该能打包更多数据才对,但是实际场景下TCP传输为什么会以这个1448作为打包...转载 2018-12-29 15:53:43 · 15667 阅读 · 1 评论