VC/C/C++
文章平均质量分 84
hello world 1
...
展开
-
解决警告——warning C4018: “<”: 有符号/无符号不匹配
今天遇到这个问题,虽然不影响程序运行,但作为完美主义者,有警告总感觉不舒服,所以就查了一下解决方法:出错代码: for(int j=0;j出错原因分析: detector 是一个Vector容器 ,detecot.size() 在容器说明中 被定义为: unsigned int 类型, 而j是int 类型 所以会出现: 有符号/无符号不匹配警告错误改正: 定义j为uns转载 2015-08-10 15:24:52 · 20528 阅读 · 7 评论 -
精确获取时间(QueryPerformanceCounter)
LARGE_INTEGER tima,timb; QueryPerformanceCounter(&tima);在 Windows Server 2003 和 WindowsXP 中使用 QueryPerformanceCounter 函数的程序可能执行不当QueryPerformanceCounter 來精確計算執行時間QueryPerformanceCounter 來精转载 2015-08-19 11:44:28 · 444 阅读 · 0 评论 -
字符串分割整理-简单实用
急求VC++高手!!!MFC中如何把一个字符串按分隔符分割成字符串数组,再把字符串数组转化成整型数组?例如:定义字符串CString m_str1="123,789,654,339";把m_str1以“,”为分隔符分割成字符串数组CString m_str2[]={123,789,654,339};再把m_str2转换成:int num[]={123,789,654,3原创 2015-08-07 13:37:29 · 533 阅读 · 0 评论 -
MFC基础,MFC自绘控件学习总结.
http://blog.csdn.net/yue7603835/article/details/6649458http://blog.csdn.net/xiexievv/article/details/6596411我的机器环境是:Windows7旗舰版 Service Pack 1,Visual studio 20051).重绘某个控件时,强烈推荐使用子类化方法,比如想自绘B转载 2015-09-11 15:47:42 · 585 阅读 · 0 评论 -
MFC 画图
MFC 画图精华:Windows中负责图形输出的是GDI(即GraphicDeviceInterface,图形设备接口)。这是Windows与硬件无关的图形输出模式的体现。GDI建立在硬件抽象层(HAL)之上,屏蔽了不同输出设备之间的差异,从而为用户提供了一个统一的“标准输出设备”。但是,与DOS不同,Windows是多任务、进程独立的,每一个窗口都应该有一个独立的输出通道。这样,转载 2015-09-11 11:46:30 · 1018 阅读 · 0 评论 -
用C++品尝Vista美味:界面的毛玻璃效果——涨姿势
用C++品尝Vista美味:界面的毛玻璃效果_www.knowsky.comhttp://www.knowsky.com/395561.html简介 本文将演示在基于Windows Vista的普通Windows应用程序及对话框程序中,如何利用C++来生成Aero毛玻璃效果,此处使用的是Beta 2版本的Vista及Windows SDK,也许在后续的版本中,一些API在转载 2015-09-15 13:55:03 · 1376 阅读 · 0 评论 -
C/C++中static,const,inline三种关键字的总结(参照网络)
一、 关于staticstatic 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全面分析static 修饰符的实质。static 的两大作用:一、控制存储方式static被引入以告知编译器,将变量存储在程序的静态存储区而非栈上空间。引出原因:函数内部定义的变量,在程序执行到它的定义处时,编转载 2015-09-17 10:35:24 · 491 阅读 · 0 评论 -
#if _MSC_VER > 1000 #pragma once #endif 作用解释
#if _MSC_VER > 1000 #pragma once #endif 作用解释一、#if _MSC_VER > 1000#pragma once#endif解释:这是微软的预编译控制。 在_MSC_VER较小时,它对一些东西的支持与新版不同 _MSC_VER分解如下: MS:Microsoft(微软)的简写 C:MSC就是Microsoft转载 2015-10-09 10:22:44 · 467 阅读 · 0 评论 -
关于野指针的一些问题与总结
void Test(void){char *str = (char *) malloc(100);strcpy(str, “hello”);free(str); if(str != NULL){ strcpy(str, “world”); printf(str);} 请问运行Test函数会有什么样的结果?答:篡改动态内存区的内容,后果难以预料,非常危险。因为free(str);之后,st...原创 2015-11-10 14:33:26 · 8034 阅读 · 2 评论 -
c/c++数组与sizeof的基础知识——写的非常好,解惑
c/c++数组与sizeof的基础知识http://www.cppblog.com/bloodsuck/articles/7575.html1 、什么是 sizeof 首先看一下 sizeof 在 msdn 上的定义: The sizeof keyword gives the amount of storage, in bytes, associated w转载 2015-11-10 11:51:51 · 382 阅读 · 0 评论 -
C/C++语言中struct的深入探讨
文章整理自:http://blog.csdn.net/ehui928/article/details/546386一. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在转载 2015-12-30 14:14:46 · 569 阅读 · 0 评论 -
定义入口点错误
今天运行程序,准备Release一下,结果报错:fatal error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d]两种方案一、使用/M原创 2015-07-24 15:51:32 · 1021 阅读 · 0 评论 -
MFC编辑框输入内容与显示内容转为16进制数据——更正版
最近工作中用到向串口发送16进制命令,所以就需要将输入的内容转为16进制。由于要向串口发送16进制命令,所以我将命令存入unsigned char数组中。代码: char ncharGlobalCommandRes[9]={0xaa,0x55,0x77,0x70,0x07,0x00,0x00,0x00,0xed}; //串口命令 CString nstrResolution;原创 2015-07-22 15:57:53 · 14146 阅读 · 0 评论 -
程序崩溃时自动记录minidump的c++类
程序崩溃时自动记录minidump的c++类程序崩溃时自动记录minidump的c++类 - Fcoding_狂人 - 博客园http://www.cnblogs.com/FCoding/archive/2012/07/05/2578557.html封装了一个C++类,当程序意外崩溃的时候可以生成dump文件,以便确定错误原因。头文件: 1 //转载 2015-08-25 17:21:37 · 554 阅读 · 0 评论 -
分析两种Dump(崩溃日志)文件生成的方法及比较
分析两种Dump(崩溃日志)文件生成的方法及比较 - 方亮的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/breaksoftware/article/details/23134445 做windows产品开发的,永远绕不开一个问题——程序崩溃。如果希望不断提升产品质量,就得不停的收集和分析崩溃日志。但是我们会发现一个问题,我们经常采用的方案无法拦转载 2015-08-25 17:39:31 · 718 阅读 · 0 评论 -
C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息一台机器上可能不只有一个网卡,但每一个网卡只有一个MAC地址,而每一个网卡可能配置有多个IP地址;如平常的笔记本电脑中,就会有无线网卡和有线网卡(网线接口)两种;因此,如果要获得本机所有网卡的IP和MAC地址信息,则必须顺序获得每个网卡,再依次获取其信息等;在windows sdk中,用IP_ADAPTE转载 2015-08-12 15:19:37 · 714 阅读 · 0 评论 -
VC获取本机IP 子网掩码 (两种方法)
获取IP方法:1.获取网卡信息 2.读取注册表 3.通过主机名信息 char Name[255];//定义用于存放获得的主机名的变量 char *IP;//定义IP地址变量 CString strIP=""; PHOSTENT hostinfo; if(gethostname (Name, sizeof(Name)) == 0) {转载 2015-08-12 16:12:40 · 3384 阅读 · 0 评论 -
C/C++中extern关键字详解
C/C++中extern关键字详解1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。 也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译转载 2015-07-21 13:53:25 · 428 阅读 · 0 评论 -
把内存中的数据转化成16进制显示
今天遇到需要将内存中的原始数据以16进制方式输出:方法为:int i=0;CString str,str1;unsigned char buf[256];//buf1是你自己的数据memcpy(buf,buf1,256);for(i=0;i{str1.Format("%02X ",buf[i]);str=str+str1;} strcpy和memcp原创 2015-07-20 11:48:54 · 4688 阅读 · 0 评论 -
关于数组溢出------warning C4789: 内存复制的目标太小
Holy Shit!!!不小心犯了个低级错误——在使用数组时,下标使用时出错了(我一直想当然的没错,先入为主的观念),结果编译器就不干了,耗费了一点时间找出问题,但需要引以为戒!!!编译器警告(等级 1)C478Visual Studio 2013内存复制的目标太小原创 2015-07-21 13:52:16 · 6288 阅读 · 0 评论 -
CString中Format函数与格式输入与输出
CString中Format函数与格式输入与输出Format是一个很常用,却又似乎很烦的方法,以下是它的完整概貌,以供大家查询之用: 格式化字符串forma("%d",12)意思是将一个整形的格式化的字符(我认为是保持其形状不变) 1).格式说明总是以%字符开始,以下是不同类型数据的格式方式%号后的说明: d输出带符号十进制数 o输出无符号八进制数 x输出无符号十转载 2015-08-13 15:05:43 · 625 阅读 · 0 评论 -
字符从内存中取出时出现FFFFFFDA或者字符型16进制打印出现ffffff**
这是因为定义的数组是char,需要返回的是unsigned char的数组,两边数组不一样,会有强制类型转换。原创 2015-08-13 16:03:33 · 1397 阅读 · 0 评论 -
vc++ 读取EditBox中的十进制数,转化为int格式,再在编辑框中用十六进制显示
vc++ 读取EditBox中的十进制数,转化为int格式,再在编辑框中用十六进制显示虽然简单,但很实用![cpp] view plaincopyGetDlgItemText(IDC_EDIT1, firstedit); int n = atoi(firstedit); CString secondedit; seconde转载 2015-07-21 16:12:19 · 1728 阅读 · 0 评论 -
C语言中sizeof用法总结
http://blog.sina.com.cn/s/blog_4913c1f301000bip.html在VC中,sizeof有着许多的用法,而且很容易引起一些错误。下面根据sizeof后面的参数对sizeof的用法做个总结。一、参数为数据类型或者为一般变量。例如sizeof(int),sizeof(long)等等。这种情况要注意的是不同系统系统或者不同编译器得到的结果可能是不转载 2015-12-30 14:18:26 · 1526 阅读 · 0 评论 -
C语言中联合体union的使用
本文编辑整理自:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471一、前言“联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量的长度等于各成员中最转载 2015-12-30 14:28:09 · 406 阅读 · 0 评论 -
CFileDialog获取文件名长度的问题(总结前辈)
CFileDialog dlg(TRUE,NULL,NULL, OFN_FILEMUSTEXIST,strFilter);///TRUE为OPEN对话框,FALSE为SAVE AS对话框 if( dlg.DoModal() != IDOK) return; FilePathName=dlg.GetPathName(); CString FileName = d原创 2016-01-14 17:13:06 · 1552 阅读 · 0 评论 -
网络字节序与主机字节序
网络字节序与主机字节序不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起始地址LE little-endian最符合人的思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序,原创 2016-04-08 10:20:51 · 372 阅读 · 0 评论 -
大小端模式详解
大小端模式详解int i=1; char *p=(char *)&i; if(*p==1) printf("1"); else printf("2"); 大小端存储问题,如果小端方式中(i占至少两个字节的长度)则i所分配的内存最小地址那个字节中就存着1,其他字节是0.大端的话则1在i的最高转载 2016-04-08 10:24:29 · 756 阅读 · 0 评论 -
浅谈C/C++内存泄露及其检测工具
对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如 Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比转载 2016-04-13 11:33:13 · 3477 阅读 · 0 评论 -
MFC读写文件CStdioFile
CStdioFile类的用法(除此之外还有CFile,CArchive,CMemFile等等)。 MFC中使用CStdioFile类封装了C++运行时刻文件流的操作,流文件采用缓冲方式,支持文件模式和二进制模式文件操作,默认方式为文本模 式。 CStdioFile类从CFile类继承,具有如下三个构造函数: 1、CStdioFile():建立一个CStdioFile类的对象,但不转载 2016-03-29 11:14:02 · 1888 阅读 · 0 评论 -
CFile和CStdioFile的文件读写使用方法
CFile//创建/打开文件CFile file;file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);文件打开模式可组合使用,用“|”隔开,常用的有以下几种:CFile::modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文转载 2016-03-29 11:16:48 · 465 阅读 · 0 评论 -
使用CStdioFile读写文件
CStdioFile类的声明保存在afx.h头文件中。CStdioFile类继承自CFile类,CStdioFile对象表示一个用运行时的函数fopen打开的c运行时的流式文件。流式文件是被缓冲的,而且可以以文本方式(默认)或者二进制方式打开。CStdioFile类不支持CFile类中的Duplicate、LockRange、UnlockRange函数,如果你使用了,会得到CNot转载 2016-03-29 11:18:05 · 4219 阅读 · 0 评论 -
MFC双缓冲绘图
MFC双缓冲绘图原理呢转一下别人的,重点在后面的画布类——MFC双缓冲绘图——————————————————————————BOOL CDataStructureView::OnEraseBkgnd(CDC* pDC) { CRect rc; CDC dcMem;原创 2016-04-15 17:16:50 · 730 阅读 · 0 评论 -
堆和栈的区别(内存和数据结构)【转】
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类...转载 2018-04-17 22:47:29 · 1424 阅读 · 1 评论 -
堆、栈、自由存储区、全局/静态存储区和常量存储区
http://blog.csdn.net/jack__h/article/details/5419913堆、栈、自由存储区、全局/静态存储区和常量存储区在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释...转载 2018-04-17 23:20:36 · 435 阅读 · 0 评论 -
C内存分布及程序运行中(BSS段、数据段、代码段、堆栈),const
https://blog.csdn.net/u010550992/article/details/26986387经常看到uboot里面有清bbs段.一直都不明白,bbs段是什么东西,为什么要清,有什么作用. 还有其他段,都是些什么关系。c语言中总体来说,分两种情况:1.编译出来可执行文件放在存储盘上(硬盘), ...转载 2018-04-17 23:43:06 · 1878 阅读 · 0 评论 -
typedef用法小结 (※不能不看※)
第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针转载 2016-03-11 16:31:41 · 456 阅读 · 0 评论 -
C语言学习心得一:__stdcall、__cdcel和__fastcall三者的区别
_stdcall、__cdecl和__fastcall是三种函数调用协议,函数调用协议会影响函数参数的入栈方式、栈内数据的清除方式、编译器函数名的修饰规则等。如下图所示,可以在IDE环境中设定所有函数默认的调用协议,还可以在函数定义时单独设定本函数的调用协议。调用协议常用场合__stdcall:Windows API默认的函数调用协议。__cdecl:C/C++转载 2016-03-09 23:54:09 · 6516 阅读 · 0 评论 -
关于前缀自增运算符与后缀自增运算符的区别,以及利弊
C语言的自增++,自减--运算符对于初学者来说一直都是个难题,甚至很多老手也会产生困惑,最近我在网上看到一个问题:#include void main() /*主函数*/ {int a,b,c,d; a=5;b=5; c=(a++)+(a++)+(a++); d=(++b)+(++b)+(++b); printf("a=%d,b=%d,c=%d,d=%d\n"转载 2016-01-14 23:07:06 · 5812 阅读 · 3 评论 -
【Visual C++】一些开发心得与调试技巧
自己平时收集的一些技巧与心得,这里分享出来,普及一下知识。 1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database。在Li转载 2016-02-03 16:44:24 · 397 阅读 · 0 评论