- 博客(315)
- 资源 (3)
- 收藏
- 关注
转载 union用法解析及数据类型在不同平台上的字节数
联合提供了一种方式,能够规避C的类型系统,允许以多种类型来引用一个对象。联合声明的语法和结构体的语法一样,只不过语义相差很大。它们不是用不同的域来引用不同的存储器块,而是引用同一块存储块。下面我们来举几个例子:struct STest{ char c; int i[ 2 ]; double var;}; union
2014-05-21 15:51:24 3098
转载 预处理预编译(C++)
# 预处理预编译(C++)一、预处理的由来: 在C++的历史发展中,有很多的语言特征(特别是语言的晦涩之处)来自于C语言,预处理就是其中的一个。C++从C语言那里把C语言预处理器(被Bjarne博士简称为Cpp,不知道是不是C Program Preprocessor的简称)继承过来。二、常见的预处理功能: 预处理器的主要作用就是把通过预处理的内建功能对一个
2014-05-21 14:41:13 1042
转载 如何绘制动态曲线
引子 项目终于快完成了,现在开始整理下代码,总结下,今天先分享下关于使用如何用QWT绘制波形,先把图给贴出来。关于QWT 以下源于百度百科“QWT全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目,可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,
2014-05-16 16:06:28 9164
转载 vc中debug版程序正常但release版崩溃的解决方法
I. 内存分配问题1. 变量未初始化。为debug中会自动给变量初始化found=FALSE,而在release版中则不会。所以尽可能的给变量、类或结构初始化。2. 数据溢出的问题如:char buffer[10];int counter;lstrcpy(buffer, "abcdefghik");在debug版中buffer的NULL覆盖了counter的高位,但
2014-05-10 10:05:48 3051
原创 AfxWinMain中pThread->InitInstance()出错的解决方法
最近在写程序时,在Debug下能正常运行,但是换到Release下就报一个中断错误:“0x71ea1cbc(mfc100.dll) 处未处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突”,并且,错误箭头指到了winmain.cpp文件中AfxWinMain函数内的if (!pThread->InitInstance())语句,经过分析是pThread为NULL,
2014-05-10 10:00:26 6537 2
转载 XP/WIN7系统中删除已结束进程托盘图标的方法
对于使用托盘图标的程序,当我们通过强制结束进程,或者程序异常退出时,托盘图标区域总会有托盘图标的残留,需要我们用鼠标移到残留区域时,托盘图标才会自动消失。有时我们需要去做相关的处理,比如在软件升级时,会强制结束进程,这时需要自动的去清除残留的托盘图标。通过研究和查阅网络,整理如下的方法。 1、通过向托盘区域发送WM_MOUSEMOVE消息,模拟鼠标移动到图潘区域的效果,使图标自动
2014-05-07 18:30:20 3137 1
转载 拦截QT关闭窗口的CloseEvent()解析
QDialog类下有一个虚函数void QDialog::closeEvent ( QCloseEvent * e ) [virtual protected]通过实现closeEvent函数,就可以以对关闭窗口消息进行拦截,比如程序还没有完成工作时,可以弹出警告窗口,即使用户确认退出操作.在头文件中,需要加入#include :#ifndef TEST_H
2014-05-05 15:48:24 3789
转载 Qt中如何使窗口隐藏/最小化到托盘
托盘是什么?这个就不用在多说了!而Qt中如何实现自己的托盘功能,Qt自带的demo也很明了,这里我们就来实现自己的一个托盘。。。 void TrayMenu::createActions() { //创建托盘项 action_show = new QAction(this); action_quit = new QAction(this);
2014-04-30 14:05:19 16265 3
转载 C/C++格式化字符串说明
C/C++格式化字符串说明1. 格式化规定符━━━━━━━━━━━━━━━━━━━━━━━━━━ 符号 作用────────────────────────── %d 十进制有符号整数 %u 十进制无符号整数 %f 浮点数
2014-04-29 22:44:16 8832
转载 Qt打包发布方法
1、发布方式 Qt发布的时候,通常使用两种方式: (1)静态编译 (2)动态编译 静态编译:把相关联的库一并引入可执行程序,虽然发布简单,但可执行程序较大。。。 动态编译:相关联的库,以dll的形式引用,不被包含进可执行程序,发布不方便,但可执行程序较小。。。 静态发布虽然不需要较多的dll,发布简单、方便,但是往往会牵扯到授权
2014-04-29 20:49:56 2334
原创 openProcess时拒绝访问(GetlastError为5),返回的HANDLE为NULL的解决方法
遇到的问题:在winXP的VS2010里调试好的程序,直接双击exe文件能运行,但是什么都没执行,就是没有按我程序中写的去执行。找出问题的方法:由于是执行exe文件出的错误,因此用普通的打印语句(printf,cout等)是没用的,我在程序 中每个几行加一个messageBox或者向一个文件写内容来判断程序执行到哪儿出现了问题。具体介绍:最近在写一个进程监控管理的程序,都已经写好了,并且在
2014-04-29 20:37:52 15006
转载 获取当前时间的方法
摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概念在 C
2014-04-28 23:24:13 1092
转载 守护进程和后台进程
后台进程默认情况下,进程是在前台运行的,这时就把shell给占据了,我们无法进行其它操作。对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的。 tianfang > run & [1] 11319 tianfang >进程切换到后台的时候,我们把它称为job。切换到后台时会输出相关job信息,以前面的输出为[
2014-04-28 18:06:49 2965
转载 C++中 stringstream详解及实例
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。 istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格的串流的输出操作。 strstream类同时可以支持C风格的串流的输入输出操作。 istringstre
2014-04-23 13:48:47 5223
转载 Apache与Nginx的 比较
Apache与Nginx的优缺点比较 1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的优
2014-04-23 12:36:17 1179
转载 C++中vector和map使用详解
标准库Vector类型使用需要的头文件:#include Vector:Vector 是一个类模板。不是一种数据类型。 Vector是一种数据类型。一、 定义和初始化Vector v1; //默认构造函数v1为空Vector v2(v1);//v2是v1的一个副本Vector v3(n,i);//v3包含n个值为i的元素Vector v4(n); //v4含有n
2014-04-20 14:31:41 20196
转载 windows下创建进程,CreateProcess()详解及用法
CreateProcess() 函数原型如下:[C++] 纯文本查看 复制代码?010203040506070809101112BOOLWINAPI CreateProcess( __in_opt LPCTSTR
2014-04-17 18:04:46 104180 7
转载 eixt(0),ExitProcess和TerminateProcess的区别和联系
首先来谈谈一个进程的执行流程。每个应用程序都有个主函数,在WINDOWS下,只支持两种类型的应用程序——CUI(控制台应用程序)和GUI(图形界面应用程序),相应的,其主函数类型不同。来看下这几个入口函数int WINAPI WinMain(HINSTANCE hinstExe, HINSTANCE,PSTR pszCmdLine, int nCmdShow); int WINAPT w
2014-04-14 17:01:07 5048
转载 GetLastError 返回值代表含义大全
GetLastError 返回值大全 〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格
2014-04-14 15:30:17 1526
转载 枚举进程的方法
在Windows 2000以上的MS操作系统,通过Windows的任务管理器可以列出当前系统的所有活动进程,在Windows XP中,更是在控制台下增加了一条Tasklist命令,让系统下的所有进程无所遁行。这一切是怎么实现的呢?方法一第一种方法是大家比较熟悉的通过ToolHelp Service提供的API函数来实现。这里用到了3个关键的函数:CreateToolhelp32Sn
2014-04-09 15:25:43 1039
转载 如何获取某个进程的主窗口以及创建进程的程序名(进程映像名)
在编写工具程序以及系统管理程序的时候。常常需要获取某个进程的主窗口以及创建此进程的程序名。获取主窗口的目的是向窗口发送各种消息。获取启动进程的程序名可以控制对进程的操作。但是有些进程往往有多个主窗口。你要的是哪一个主窗口呢?如果你用过Outlook程序,你就会发现它有多个主窗口,一个窗口列出收件箱和其它文件夹。如果你打开e-mail,便会有另外一个窗口显示信息。它们都是没有父窗口(或者说宿主窗口)
2014-04-09 15:03:19 2442
转载 根据PID获取进程名 或者 根据进程名获取PID
根据PID获取进程名&根据进程名获取PIDLiunx中 通过进程名查找进程PID可以通过 pidof [进程名] 来查找。反过来 ,相同通过PID查找进程名则没有相关命令。在linux根目录中,有一个/proc的VFS(虚拟文件系统),系统当前运行的所有进程都对应于该目录下的一个 以进程PID命名的文件夹 ,其中存放进程运行的N多信息。其中有一个status文件,cat显示该文件, 第
2014-04-09 13:49:34 11279
转载 C++输入cin详解
C++输入cin详解输入原理:程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入#1:#include using namespace
2014-03-23 15:59:27 697
转载 学习C++一些必读经典书籍
人们常常问我有什么C++和编程的书籍推荐,也许是因为我在PowerDNS有一个关于“编写可读性良好的C++代码”的演讲。这篇博文可以作为我对上述问题的一个回答,同时也包含了一些更广泛的笔记编程。如果你有任何补充或喜欢的书籍但是我没有提到,请给留言提示,我打算一有新书就更新这个页面。第一个注意项:如果你打算学习C++,请务必学习最新版的C++ 2011。这个版本的C++移除了许多由C++强大
2014-03-17 12:47:43 1490
转载 pragma pack() 详解
首先强调一点:#pragma pack(4)typedef struct{ char buf[3]; word a;}kk;#pragma pack()此段代码中,struct整体对齐的原则是min(sizeof(word ),4)=2,因此是2字节对齐,而不是我们认为的4字节对齐。其中,sizeof(word )的word是struct中字节最长的成员
2014-03-14 14:41:52 1115
转载 类的赋值运算符=的重载,以及深拷贝和浅拷贝 详解
C++本质:类的赋值运算符=的重载,以及深拷贝和浅拷贝 赋值运算符摘要: 在面向对象程序设计中,对象间的相互拷贝和赋值是经常进行的操作。 如果对象在申明的同时马上进行的初始化操作,则称之为拷贝运算。例如: class1 A("af"); class1 B=A; 此时其实际调用的是B(A)这样的浅拷贝操作。 如果对象在申明之后,在进行的赋值运算,我们称之为赋值运算。例如:
2014-03-13 18:02:19 957
转载 time及其相关函数的使用
1.时间表示 在程序当中,我们经常要输出系统当前的时间,比如我们使用date命令的输出结果。这个时候我们可以使用下面两个函数time_t time(time_t *tloc); //时间精度为秒char *ctime(const time_t *clock); //将秒数转化为字符串time函数返回从1970
2014-03-13 15:26:43 857
转载 VC中项目配置详解
一.IDE基础配置 1. 字体VC6中“Tools→Options→Format→Font”配置字体;VC2005中“工具→选项→环境→字体和颜色”配置字体。编写代码一般采用等宽字体,等宽点阵(位图)字体,相对矢量字体而言具有兼容性好和显示清晰的优点。常用的编程等宽字体包括Fixedsys(VC6和notepad御用字体)、Consolas、YaHei Mono。VC6默认可选
2014-03-11 14:02:26 2312
转载 getchar 和 getch 详解
函数名: getchar 功 能: 从stdin流中读字符 用 法: int getchar(void); 注解: getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符.g
2014-03-11 10:51:58 1338
原创 STL的hash和map本身以及其key、value是存在stack还是heap?
今天在调试代码的时候出现了一个很奇怪的bug:我在类的一个成员函数内的QHash里存了一对key和value,在同一个类里的另一个成员函数内通过key取出value,竟然是空也就是不存在这对,真是太奇怪了,明明存储在里面,刚存放进去,我通过打印语句打印出来时存在的,在另一个成员函数内就没了。具体代码://test.h QHash *groupHash;//我定义成了指针对象
2014-03-06 15:47:08 1666
原创 详解 “预处理、编译(compile)、 代码优化、 汇编(Assembly)、 链接 (link)”的具体过程
我们在用vc写好代码后,在进行编译和连接的时候,经常会遇到各种问题:如在连接时遇到的问题:(1)error LNK2019: 无法解析的外部符号*** ,该符号在函数***中被引用 (2)error LNK2001: 无法解析的外部符号 ***等等,出现了这种问题,我们就去百度,谷歌,看到解决方法就去试,试好了,就过了,但是,这到底是怎么回事呢,如果我们能对编译和连接的原理理解
2014-03-06 10:11:15 2897
转载 编译(Compile)、连接(Link)都做了什么事情
一个C程序的生成要经历以下步骤: 1.编写文本代码,生成C或Cpp文件,这时候它还是文本的; 2.编译,就是Compile,由C编译程序对你写的代码进行词法和句法分析,发现并报告错误,有错时编译不能通过。如若无错,则生成中间代码,扩展名为obj,此时它便是二进制的了; 3.连接,在汇编里称Link,在C里叫生成,即Build,它的作用是生成可执行的exe文件。由于一个程序的
2014-03-06 09:27:18 6614
转载 htonl() 、htons()及inet_ntoa() 、inet_addr()的用法
htonl() 、htons()及inet_ntoa() 、inet_addr()的用法 现在我们很幸运,因为我们有很多的函数来方便地操作 IP 地址。没有 必要用手工计算它们,也没有必要用"首先,假设你已经有了一个sockaddr_in结构体ina,你有一个IP地址"132.241.5.10" 要储存在其中,你就要用到函数inet_addr(),将IP地址从 点数格式转换成无
2014-03-04 14:36:50 15303
转载 size_t,ssize_t,int和long的区别
size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关,在32位架构中被普遍定义为:1typedefunsigned intsize_t;而在64位架构中被定义为:1ty
2014-02-25 09:56:39 45017 1
转载 回调函数中如何调用类中的非静态成员变量或非静态成员函数
回调函数中调用类中的非静态成员变量或非静态成员函数【问题1】如何在类中封装回调函数?【答】: a.回调函数只能是全局的或是静态的。 b.全局函数会破坏类的封装性,故不予采用。 c.静态函数只能访问类的静态成员,不能访问类中非静态成员。 【问题2】如何让静态函数访问类的非静态成员? 【解决方案】: 声明一静态函数a(),将类实例对象指针做为
2014-02-24 17:09:41 7405 2
转载 Android开发规范--编码规范/性能优化/UI优化
本文作者从Android编码规范、Android性能优化、Android UI优化这三个方面讲述了Android开发规范,Android开发者应该好好阅读这篇文章。一、Android编码规范1.java代码中不出现中文,最多注释中可以出现中文2.局部变量命名、静态成员变量命名只能包含字母,单词首字母出第一个外,都为大写,其他字母都为小写3.常量命名只能包含字母和_,字母
2014-02-20 16:20:32 890
转载 socket编程之基础知识
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?
2014-02-20 14:44:59 1046
转载 网络编程中阻塞与非阻塞,同步与异步、I/O模型的理解
1. 概念理解 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式:同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。也就是必须一件一件事做,等前一件做完了才能做下一件事。例如普通B/S模式(同步):提交请求->等待服务器处理->处理
2014-02-20 14:10:41 4223
基于AT89C2051单片机的电风扇
2010-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人