C/C++/objective-c
文章平均质量分 69
zhjf14
PC客户端产品开发
展开
-
C与CPP文件的区别
转自http://www.cnblogs.com/ahuo/archive/2008/08/12/1265643.html在编译源文件时,C编译器和C++编译器都会对符号(函数或变量)名作某些修正,但两者采用的修正方法不同,所以两者生成的目标文件不能互相链接。在C++中使用e转载 2011-08-15 00:19:41 · 739 阅读 · 0 评论 -
深入理解指针函数 (2011-03-22 11:41:48)转载 标签: 指针函数 函数指针
原文来自http://blog.sina.com.cn/s/blog_5e8facd20100qn20.html1.指针函数的定义顾名思义,指针函数即返回指针的函数。其一般定义形式如下:类型名 *函数名(函数参数表列);其中,后缀运算符括号“()”表示这是一个函数,其前缀运算符星号“*”表示此函数为指针型函数,其函数值为指针,即它带回来的值的类型为指针,当调用这个函转载 2011-11-21 23:45:43 · 673 阅读 · 0 评论 -
与编译器相关的问题
今天看到了这样一段代码:#include using namespace std;int main(){ int a[] = {10,20,30,40,50}; int *p = &a[1]; cout<<*p<<endl; cout<<*p<<endl <<*p++<<endl <<*p<<endl; re原创 2011-11-24 21:52:54 · 409 阅读 · 0 评论 -
用InstallShield制作安装包时,有时候需要判断操作系统的类型(如Windows XP或者是Windows Vista等
转自:http://blog.csdn.net/huangxinfeng/article/details/4873847 用InstallShield制作安装包时,有时候需要判断操作系统的类型(如Windows XP或者是Windows Vista等(http://community.flexerasoftware.com/)方法一:采用注册表的方式进行判断,例程如下:NUMBER转载 2012-02-08 16:22:14 · 1298 阅读 · 0 评论 -
输出缓冲区的刷新
重读C++ Primer,才发现endl不仅仅是换行那么简单,还有刷新缓冲区的作用。“程序员经常在调试过程中插入输出语句,这些语句都应该刷新输出流。忘记刷新输出流可能会造成输出停留在缓冲区中,如果程序崩溃,将会导致对程序崩溃位置的错误判断”。将信息写入控制台、磁盘文件之前都会在缓冲区中呆上一会儿。如果不刷新缓冲区,有的编译器不会将信息写入,而让其停在缓冲区中;有的编译器会让信息在缓冲区待一原创 2012-02-08 23:48:50 · 1236 阅读 · 0 评论 -
C++之文件IO操作流
转自:http://www.cnblogs.com/CaiNiaoZJ/archive/2011/08/18/2144247.html文件IO操作流fstream文件指存放在外部介质上的数据的集合。大家都知道操作系统是以文件为单位来对数据进行管理的。因此如果你要查找外部介质的数据,则先要按文件名找到指定文件,然后再从文件中读取数据,如果要把数据存入外部介质中,如果没有该文件,则先要建立文件转载 2012-02-13 11:26:27 · 572 阅读 · 0 评论 -
VS2005调试技巧集合
转自:http://blog.csdn.net/rainylin/article/details/1775125下面有从浅入深的6个问题,您可以尝试回答一下一个如下的语句for (int i = 0; i 在一个1000次的循环体内部设置断点,你希望当循环进行到900次后中断,怎么才能做到呢?你有一个表达式在上面循环的某一次发生了变化,你想知道是哪一次,在哪个地方,怎么才能做到?你转载 2012-02-13 12:22:04 · 541 阅读 · 0 评论 -
简单、常用的字符串转二进制代码
转自:http://blog.csdn.net/jennyvenus/article/details/7428061[cpp] view plaincopyint parse( TCHAR *strtext, unsigned char *binbuf ) { size_t l = _tcslen( strtext );转载 2012-04-05 15:15:15 · 681 阅读 · 0 评论 -
常见排序算法总结
经典排序算法 - 快速排序Quick sort 经典排序算法 - 桶排序Bucket sort经典排序算法 - 插入排序Insertion sort经典排序算法 - 基数排序Radix sort经典排序算法 - 鸽巢排序Pigeonhole sort经典排序算法 - 归并排序Merge sort经典排序算法 - 冒泡排序原创 2012-04-16 09:29:15 · 390 阅读 · 0 评论 -
Pseudoregisters在MFC里debugging中的应用
转自:http://blog.csdn.net/jianzhanger/article/details/5824373原文地址:http://www.codeproject.com/KB/debug/pseudoregister.aspx 让我们从为什么写这篇文章开始. 一天, 一个学生让我帮助他解决一个调试问题. 为此我看着他单步进入代码, 当我看到如下代码: i转载 2012-05-15 11:32:34 · 341 阅读 · 0 评论 -
Linux下模拟ping命令的C代码实现
/******************************************************** * IP报头格式数据结构定义在中 * * ICMP数据结构定义在中 * * 套接字地址数据结构定义在中 * ********************************************************/#include #include #inc转载 2012-11-07 11:59:04 · 650 阅读 · 0 评论 -
C实现DNS
DNS(Domain Name System)域名系统提供了主机名和IP地址之间的转换。通常我们在应用程序中使用库函数gethostbyname()和gethostbyaddr()来完成两者之间的转换。但是为了更深入的学习网络底层知识,有必要从源代码级别来分析和实现RFC 1034说明了DNS的概念和功能,RFC 1035详细说明了DNS的规范和实现。通过阅读RFC,我们知道明白了,应转载 2012-11-26 17:58:43 · 2802 阅读 · 0 评论 -
dns_util
/* * Copyright (c) 1999-2007 Apple Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * * This file contains Original Code and/or Modifications of Original Code * as defined in and that翻译 2012-11-27 14:45:53 · 1000 阅读 · 0 评论 -
找出单向链表的倒数第m个元素
链表节点:class Node{public: int data; Node* next;public: Node(int n) : data(n), next(0) { } Node() : data(0), next(0) { } Node转载 2012-11-15 14:19:19 · 1227 阅读 · 0 评论 -
Linux Trace实现
#include #include #include #include #include #include #include #include #include #include #include #include #include转载 2012-11-19 09:46:05 · 813 阅读 · 0 评论 -
Block 编程(翻译官方文档)
转载请附上原文链接:http://blog.csdn.net/perfect_promise/article/details/7757746注:小弟才疏学浅,英文水平够烂,若有不正确或误导的地方,请大家指出,欢迎大家指正和修改。本文中涉及的词法范围:作用范围,例如if{}else{},两个{}分别是if和else的作用范围。介绍Block对象是一个C级别的语法和运行机制。它与标准的C函转载 2013-04-02 11:19:32 · 639 阅读 · 0 评论 -
ASII码表
ASCII码表信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。 八进转载 2013-04-08 15:19:57 · 3057 阅读 · 0 评论 -
使用WinPcap抓包分析网络协议
//捕获网络数据包的C++程序//可以获得数据包长度、通过以太网类型确定上层协议、源以太网地址和目的以太网地址!#include "pcap.h"#include#pragma comment(lib,"wpcap.lib")#pragma comment(lib,"packet.lib")#pragma comment(lib,"ws2_32.lib")/*以下是以太网协议格式转载 2013-04-09 18:02:01 · 1225 阅读 · 0 评论 -
使用QT的qmake工具生成VS工程
本文主要讲怎么使用qmake工具生成的VS的工程文件,对于QT的库不做说明。qt的安装很简单,一路下一步就OK,安装完看看qt的bin目录是否添加中环境变量path中,如果没有,请手动添加。首先,使用的代码例子是QT安装目录下的qmake的示例文件,路径为:C:\QT\4.8.1\examples\qmake\tutorial。将里面的代码拷贝到一个新的文件夹,以免破坏原来的代码。转载 2013-04-15 16:57:09 · 1268 阅读 · 0 评论 -
MFC+MSChart动态显示曲线
最近需要用MFC做一个界面动态显示曲线,自己画坐标轴画曲线太费时间,网上也有很多已实现的动态曲线接口,但是也不太灵活。正好微软有个现成的MSChart,功能比较全面,查了一些资料,总算实现了无闪烁的动态曲线。关于MSChart的安装可以参考上篇文章http://www.cnblogs.com/wy-wangyan/archive/2011/05/06/2038981.html 实转载 2013-04-24 16:59:41 · 1491 阅读 · 0 评论 -
VC++如何使用Mschart 实例-------网络流量监控程序
源代码http://download.csdn.net/source/2402219 我先简单介绍一下我的思路:在初始化对话框中,添加一个InitChart函数,功能是初始化Mschart。同时开启设计器settimer然后通过Ontimer这个定时器的相应函数,每一秒更新一下Mschart。这里面的数据是通过GetNetspeed的函数获得。转载 2013-04-24 17:23:34 · 1406 阅读 · 0 评论 -
VS2008下更改文件所在文件夹
(1):在项目的根目录下生成你所需要的文件夹的层次。(2):在项目的物理位置(即硬盘分区上)建立与上步所建层次一样的文件夹层次。(3):将文件放于以上两步所建立的文件层次。(4):在项目的根目录上单击右键,选择属性->c/c++->general->将以上所建立的几个层次填入"Additional Include Directions"中,例如:$(Solution转载 2013-04-25 10:23:40 · 800 阅读 · 0 评论 -
编译错误warning C4627
warning C4627: '#include "Markup.h"': skipped when looking for precompiled header use1> Add directive to 'stdafx.h' or rebuild precompiled header原因:没有禁用头文件预处理功能解决办法:原创 2013-04-25 10:34:36 · 4718 阅读 · 0 评论 -
匈牙利命名法
变量(还包括宏)的命名规则,比较系统和彻底的有 Windows 编程中用到的匈牙利命名法。匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。有关匈牙利命名法的一点有意思的说明是它的名字的由来转载 2013-04-25 12:15:57 · 524 阅读 · 0 评论 -
VC中ComboBox下拉列表不显示数据或下拉表高度太小的问题
今天在CSDN里看到有不少人问一个关于VC中Combo Box下拉列表不显示数据的问题,他们正确添加了数据,但是在运行时点击Combo Box却不显示数据,其实原因很简单,在使用Combo Box控件时,有一个显示列表区域大小的设置,默认的显示区域太小,故无法显示数据。只要将鼠标在Combo Box的下三角上单击后,出现下拉的图标,向下拉下一个显示列表的区域即可。 另外,有人问道如何向转载 2013-04-25 14:23:53 · 1088 阅读 · 0 评论 -
CComboBox使用SetWindowText()无效的解决办法
1.在Resource.h中添加自定义消息#define WM_COMBOBOX_TEXT_CHANGED WM_USER + 1002.在test.h中声明消息处理函数afx_msg LRESULT OnComboBoxTextChanged(WPARAM wParam, LPARAM lParam);3.在test.cpp中添加消息映射处理ON_MESS原创 2013-04-25 17:43:27 · 3847 阅读 · 1 评论 -
Qt的Tab选项卡
tabdlg.h: #ifndef __TABDLG_H__ #define __TABDLG_H__ #include class QWidget; class QFileInfo; class QTabWidget; class QDialogButtonBox; //常规选项卡 class GeneralTa转载 2013-04-18 12:16:37 · 985 阅读 · 1 评论 -
windows下发布Qt程序
From: http://hi.baidu.com/limingfantasy/blog/item/22f6c459b8720086810a182e.htmlwindows下发布Qt程序2008-12-19 12:32以下包括了部分网上收集的,以及qt帮助里的内容(Deploying an Application on Qt/Windows)环境是QT 4.3.3转载 2013-04-18 12:18:01 · 882 阅读 · 0 评论 -
qt折线图显示数据
转载:http://blog.csdn.net/zhx6044/article/details/8030249/************************************************* 折线图绘制 author 周翔 2012-8-14 **********************************************转载 2013-04-18 14:40:11 · 2981 阅读 · 0 评论 -
VS2008 f:/dd/vctools/vc7libs/ship/atlmfc/src/mfc/dlgdata.cpp 错误调试
在VS2010 运行一个C++ 程序,出现下图错误:一看到这个,我头都大了。关键是 f:/dd/vctools/vc7libs/ship/atlmfc/src/mfc/dlgdata.cpp 这个路径根本在我计算机不存在。但是估计在安装目录下。联想到最近更新到VS2010_sp1 ,但是发行包:en_visual_c++_2010_sp1_redistributab转载 2013-04-27 15:58:12 · 904 阅读 · 0 评论 -
MFC类成员函数作为线程函数的解决办法
2009-10-04 - [开发语言]版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://efaq.blogbus.com/logs/47605752.htmlWin32 API多线程编程例程中,建立线程的函数为:HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,转载 2013-04-27 15:59:18 · 1595 阅读 · 0 评论 -
MFC——TeeChart图标控件的注册及控件插入
TeeChart Pro是一款提供上百种2D和3D图形风格、40种数学和统计功能、加上无限制的轴和22种调色板组件供选择。TeeChart还包括一个强大的、完整的编辑对话框,几乎可用于每个组件和子组件,允许你快速的设计复杂图表应用程序。图表编辑器通过TeeCommander组件进一步得到增强,它提供一次点击访问图表编辑器和共同特征。TeeChart的主类是TChart。Te转载 2013-04-19 09:51:48 · 1939 阅读 · 0 评论 -
error LNK2005: _malloc already defined in LIBCMT.lib(malloc.obj)
1>Linking...1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in LIBCMT.lib(typinfo.obj)转载 2013-04-28 11:15:58 · 1272 阅读 · 0 评论 -
如何在vs2008中添加lib 静态库使用
方法1:在cpp文件中 加入 #pragma comment(lib,"XXX.lib")方法2:步骤1:Tools->options->projects and solutions->VC++ directories分别在包含文件,库文件填加了路径(这些路径只告诉编译器怎么找文件,没有说把那里面的文件加入工程,若不设置,编译报错:无法打开***文件) 步骤2:Proj转载 2013-04-28 14:37:54 · 610 阅读 · 0 评论 -
VS2008如何在release下调试
一般都是在debug下调试程序,但有时候,为了加快调试速度,或者debug版本由于库的缺失,编译不过,需要在release下进行调试。代码的调试相关的信息存在pdb中,里面包括了代码的名称和行数,还有函数的地址,偏移等,通过pdb,可以讲二进制和源代码联系起来。所以,当程序崩溃的时候,可以通过生成的dump文件和pdb在开发者的机器上进行调试。首先要在【转载 2013-04-28 14:59:56 · 673 阅读 · 0 评论 -
VC 6.0编译器错误整理
统一格式:ID.【错误提示】:编译器提示的错误信息 【说 明】:产生此错误的根本原因 【解决方法】:解决此错误的具体方法 1. 【错误提示】: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main 【说 明】: Win转载 2013-04-28 11:17:50 · 642 阅读 · 0 评论 -
有关静态lib编译的注意点
最近遇到过静态库编译的一些问题 仅此记录下解决方法1. 原工程为动态库工程,现应要求将其改编成静态库编译首先新建了一个staticlib工程,将原来的。h.cpp 文件加入到该工程中,这里比对了下 工程设置 staticlib 中多出一个library 对话框项c++ 对话框项中的 preprocessor 中 预定义宏出现了 “_LIB”, 对比两个 d转载 2013-04-28 14:34:19 · 1420 阅读 · 0 评论 -
MFC文件压缩
使用CInfoZip完成文件压缩。需要的头文件和dll可以到下面下载:InfoZip.h, InfoZip.cpp, UnzipDLL.h, ZCallBck.h, ZipDLL.h, UNZDLL.DLL, ZDLL.DLLhttp://download.csdn.net/detail/jiayou8809/5312482代码:CString CFileDownload:原创 2013-04-28 18:05:58 · 1713 阅读 · 1 评论 -
MFC对话框最小化到托盘
1、在资源中的Icon中导入一个自己喜欢的图标,ID命名为IDR_MAINFRAME,将先前的IDR_MAINFRAME的图标删除掉;2、在自己的Dialog头文件中定义一个变量 NOTIFYICONDATA m_nid,关于该结构体的具体信息可以查阅MSDN;3、添加消息响应函数OnInitDialog(),并在该函数中添加以下代码,这样程序一启动,就在托盘中显示出了自己应用程转载 2013-05-16 16:30:16 · 519 阅读 · 0 评论 -
VC2008配置boost库使用正则表达式的步骤
1、下载与安装boost库,下载地址:http://sourceforge.net/projects/boost/files/boost/1.39.0/,将其解压到E:\boost目录。2、编译动态库,本处只要支持正则表达式就可以,因此只需要编译E:\boost\libs\regex\build目录下的文件。这步比较关键。具体操作:[1] 在“运行”里输入“cmd”,打开命令提示符;转载 2013-05-07 10:23:20 · 673 阅读 · 0 评论