
C/C++学习
文章平均质量分 63
perddy
这个作者很懒,什么都没留下…
展开
-
Source Insight使用指导
<!--@font-face {font-family:宋体}@font-face {font-family:"/@宋体"}p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inte转载 2008-03-21 11:18:00 · 900 阅读 · 0 评论 -
实验:了解HTTP单线程下载过程
正在自己写一个通过HTTP协议进行下载的小程序,进行实验抓包的过程时,发现点了一个下载链接之后,即使你没有选定保存或取消,也会有下载报文产生,很是纳闷,和之前想象中,点保存之后方进行下载的想法有些不同,于是验证了下。嘿,还真是没点保存就开下了,证据如下: 1、不做任何操作,先查看Temp文件夹,按修改时间排下序;打开Ethereal对port 80进行捕获。 2、点击一原创 2008-03-27 22:01:00 · 1397 阅读 · 0 评论 -
Windows消息机制
Dos的过程驱动与Windows的事件驱动 在讲本程序的消息循环之前,我想先谈一下Dos与Windows驱动机制的区别:DOS 程序主要使用顺序的,过程驱动的程序设计方法。顺序的,过程驱动的程序有一个明显的开始,明显的过程及一个明显的结束,因此程序能直接控制程序事件或过程 的顺序。虽然在顺序的过程驱动的程序中也有很多处理异常的方法,但这样的异常处理也仍然是顺序的,过程驱动的结构。而转载 2008-03-26 11:00:00 · 667 阅读 · 0 评论 -
MFC积累贴
记录MFC下常用的操作:1、对话框启动时隐藏界面 对话框: 可以在对话框中重载虚函数DefWindowProc()或 WindowProc函数。 LRESULT CMyDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) { if (message == WM_NCPAINT)原创 2008-03-26 10:30:00 · 853 阅读 · 0 评论 -
学习VC的心得
转载自: http://www.cnblogs.com/flyingleaf/articles/12677.html 【目 录】1. 让程序只运行一次2. 改变对话框的背景颜色3. 让程序前端显示4. “显示”链接LIB文件5. 关闭其它应用程序6. 系统托盘7. 创建隐藏的对话框8. 怎样使用高版本的函数和宏9. 如何以动态的效果打开对话框转载 2008-03-24 22:56:00 · 1422 阅读 · 0 评论 -
VC 关闭系统相关信息
本文章摘录自MSDN:一、关于关闭系统: 主要有关闭系统,注销用户,和锁屏三种System shutdown brings the system to a condition in which it is safe to turn off the computer. All file-system buffers are flushed to the disk, then a mess原创 2008-03-24 22:44:00 · 1696 阅读 · 0 评论 -
单元测试工具Numega
转自 : http://www.cnitblog.com/qiuyangzh/archive/2005/07/14/975.html 1 前言我在本文中详细介绍了测试工具NuMega Devpartner(以下简称NuMega)的使用方法。NuMega是一个动态测试工具,主要应用于白盒测试。该工具的特点是学习简单、使用方便、功能有效。NuMega共有三个独立的子功能——B转载 2008-03-13 14:27:00 · 725 阅读 · 0 评论 -
调试工具BoundsChecker用法
BoundsChecker 是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误。BoundsChecker能检测的错误包括:1)) 1. 指针操作和内存、资源泄露错误,比如:内存泄露;资源泄露;对指针变量的错误操作。2 2. 内存操作方面的错误,比如: 内存读、写溢出; 使用未初始化的内存。3 3. API函数使用错误Boun转载 2008-03-13 14:20:00 · 1446 阅读 · 0 评论 -
通用ODBC API应用结构概述
潘娅 王牛 无论在Visual C++或Visual Basic中,我们开发数据库应用程序,都可以通过使用ODBC API直接调用SQL命令来处理数据库的数据(当然,在此之前必须通过“控制面板”中的“ODBC数据源”,建立与数据库的连接)。 ODBC API是由一组函数调用组成的,其核心是S转载 2008-03-14 14:33:00 · 815 阅读 · 1 评论 -
浅谈内存泄漏
对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已转载 2008-03-13 13:50:00 · 650 阅读 · 0 评论 -
DLL(Dynamic Link Libraries)专题
原帖地址:http://www.microsoft.com/china/community/program/originalarticles/techdoc/dll.mspxDLL(Dynamic Link Libraries)专题目录 引言 调用方式 MFC中的DLL DLL入口函数 关于约定 关于DL转载 2008-03-07 13:25:00 · 771 阅读 · 0 评论 -
Inside the Linux Packet Filter
转自: http://www.linuxjournal.com/article/4852February 1st, 2002 by Gianluca Insolvibile in Security In Part I of this two-part series on the Linux Packet Filter, Gianluca describ转载 2007-12-06 18:45:00 · 1485 阅读 · 0 评论 -
VS2005安装问题解决
昨天因为想试用下zedGraph,看下效果,就在机子上安装了VS 2005,安装完毕之后,打开工程发现一直在报: Package Visual Studio Common IDE Package has failed to load properly. (GUID={6E87CFAD-4ADF-3B7943875B7C}. Please contact package vendor f原创 2007-12-02 10:25:00 · 1237 阅读 · 0 评论 -
源码: Windows下HTTP方式单线程下载
针对昨天的试验结果,书写了一个HTTP方式单线程下载的小程序,目前尚不支持断点续传。希望各位看客使劲拍砖~~原理:套接字发送HTTP GET方式的请求,然后根据HTTP响应,循环接收信息。进行下载调用函数为:DownByHttpFun传入参数为:下载的url,保存位置、错误信息等下载过程中,获得进度函数为: GetDownloadRate返回float型的进度,输出参数下载文件总大小和已原创 2008-03-28 18:58:00 · 1509 阅读 · 2 评论 -
为VC6的CHtmlView继承类添加NavigateError事件响应
转自:http://blog.youkuaiyun.com/sheds/archive/2007/02/14/1510232.aspx在VC7中CHtmlView类本身就有OnNavigateError事件响应可是VC6中却没有, 经过一番试验, 找到以下方法为VC6增加此响应比如CHtmlCtrl在头文件中增加以下内容#define DISPID_NAVIGATEERROR 271转载 2008-03-30 13:24:00 · 1432 阅读 · 0 评论 -
NSIS官方插件
安装包中需要判断某个进程是否开启,于是网上搜了个插件 NSISKillProcess链接地址为http://www.esanu.name/programs/NSISKillProcess.html可以使用,没有问题,但却发现制作的安装大小变大了很多(我们的程序对大小有一定的要求),一看processwork.dll 大小 231K,而我们程序本身才300多K。。。于是原创 2008-04-09 15:18:00 · 5035 阅读 · 0 评论 -
IP 协议中的checksum
Author:zfive5(zhaozidong)Email :zfive5@yahoo.com.cn 最近一段时间,对网络又开始追根溯源,最好的办法就是打开开源协议栈看一个究竟,不求写一个完整的ip协议栈,但求通达解惑! 众所周知,IP头定义如下:structIPHeader{ unsigned char ver_hlen;转载 2007-08-08 15:37:00 · 2008 阅读 · 0 评论 -
snprintf linux 与 windows下差异
一次移植,将windows下的某个程序移植到linux下,在运行测试阶段,发现存在部分字符丢失的问题,查找原因,发现原来windows下的_snprintf与linux下的snprintf 存在一定的差异。 linux下 sprintf会自动在后面加/0,同时copy的长度也包含了‘/0’; snprintf的man中有如下解释:原创 2009-06-23 15:22:00 · 5063 阅读 · 0 评论 -
多线程调用存储过程问题
书写一存储过程:proc_importurltodb; 该存储过程的主要作用是将给定的URL拆分,以类链表的方式多个表分层次给予存储。 主要的流程为: 首先查询表,判断要插入的数据是否存在;如果存在,则返回相应的orderid;如果不存在,则插入数据,并且返回插入后的orderid。 由于数据量较大(千万级),原创 2009-04-07 19:46:00 · 7904 阅读 · 0 评论 -
ADO执行存储过程的问题
在DB2中创建了一个存储过程,需要处理大量数据,在DB2CMD下执行存储过程,一切OK,但是通过VC+ADO的方式,却发现执行失败,查找具体的原因发现 DB2中错误信息为: SQL0952N 由于中断,处理被取消。 SQLSTATE=57014; 本以为是DB2中的超时时间配置有问题,因此将DB2 下的db2cli.ini文件下加入了 QUERYTIMEO原创 2009-03-28 15:46:00 · 1509 阅读 · 0 评论 -
17位字符号码的计算
朋友的一个问题: 给定一个字符,字符的长度为17个,存最大长度为17的号码,现要求将这个号码进行加1,如何进行操作?由于int型最大只能存4294967296 ,才10位数字,因此不能使用int,而double占8个字节,可以最大保存最大数为18446744073709551616,因此方法如下:方法一、用double类型存储 char szContNo[17+1]; strcpy(szCo原创 2008-11-10 17:11:00 · 1260 阅读 · 0 评论 -
GDB概述
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果 你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。一般来说,GDB主要帮忙你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。转载 2008-06-12 22:54:00 · 642 阅读 · 0 评论 -
CFileDialog文件选择对话框的使用
转自:http://blog.chinaunix.net/u1/34188/showart_264093.htmlCFileDialog文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下:CFileDialog::CFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NUL转载 2008-08-06 09:55:00 · 1000 阅读 · 0 评论 -
scanf,sscanf函数用法
Normal07.8 磅02falsefalsefalseMicrosoftInternetExplorer4<objectclassid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui>转载 2008-05-15 09:56:00 · 873 阅读 · 1 评论 -
异步消息的传递-回调机制
陈家朋 (japen@vip.sina.com), 系统架构师和技术顾问, 杭州迈可行通信技术有限公司转自:http://www.ibm.com/developerworks/cn/linux/l-callback/index.html1 什么是回调 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要转载 2008-04-29 19:19:00 · 704 阅读 · 0 评论 -
数组名 和 数组名取地址 的不同
昨天晚上在cppblog上逛,发现一个关于对数组名取地址 的帖子,地址为http://www.cppblog.com/cuigang/archive/2008/04/04/46271.html其中说到:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.co原创 2008-04-22 14:51:00 · 1065 阅读 · 0 评论 -
VISTA下权限问题。。。
开发的程序需要在vista运行,原程序使用了CreateProcess函数,而发现由于UAC的问题,该函数会调用失败,同时修改注册表中开机启动位置也会失败。意识到该问题后,在安装程序的时候,将注册表中 HKEY_CURRENT_USER/Software/Microsoft/Windows NT/CurrentVersion/AppCompatFlags/Layers 添加了相关的程序原创 2008-04-08 20:28:00 · 769 阅读 · 0 评论 -
如何增加之后每 VisualC++ 中生成版本信息
function loadTOCNode(){}转自MSDN :http://support.microsoft.com/kb/237870/zh-cn概要loadTOCNode(1, summary); VisualC++ 不具备功能来自动增加版本资源信息项目的各个生成后。 本文介绍一个地提供这些功能。回到顶端更多信息loadTOCNode(1, morei转载 2008-02-22 16:05:00 · 1055 阅读 · 0 评论 -
VC下使用CRT进行内存泄漏检测
转自MSDN检测内存泄漏的主要工具是调试器和 C 运行时库 (CRT) 调试堆函数。若要启用调试堆函数,请在程序中包括以下语句: 复制代码#define _CRTDBG_MAP_ALLOC#include #include 注意转载 2008-02-22 08:59:00 · 750 阅读 · 0 评论 -
使用 Linux 系统调用的内核命令
级别: 中级M. Tim Jones (mtj@mtjones.com), 顾问工程师, Emulex2007 年 4 月 17 日Linux® 系统调用 —— 我们每天都在使用它们。不过您清楚系统调用是如何在用户空间和内核之间执行的吗?本文将探究 Linux 系统调用接口(SCI),学习如何添加新的系统调用(以及实现这种功能的其他方法),并介绍与 SCI 有关的一些工具。转载 2007-11-26 11:40:00 · 888 阅读 · 0 评论 -
C++引用
引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当 然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的 作用。 引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。转载 2007-09-17 13:28:00 · 621 阅读 · 0 评论 -
VC下Debug 和Release 区别
最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导致后面处理异常。网上查找了些资料,在这罗列汇总下,做为备忘~一、Debug 和 Release 的区别 Debug 通常称为调试版本,它包含调试信息,并且不作任原创 2007-06-14 11:23:00 · 849 阅读 · 0 评论 -
堆:欢乐和痛苦(转)
Murali R. KrishnanMicrosoft Corporation1999 年 2 月摘要: 讨论常见的堆性能问题以及如何防范它们。(共 9 页)前言您是否是动态分配的 C/C++ 对象忠实且幸运的用户?您是否在模块间的往返通信中频繁地使用了“自动化”?您的程序是否因堆分配而运行起来很慢?不仅仅您遇到这样的问题。几乎所有项目迟早都会遇到堆问题。大家都想说,“我的代码真正转载 2007-06-14 11:01:00 · 619 阅读 · 0 评论 -
How to use an Outlook Object Model from Visual C++ by using a #import statement
View products that this article applies to.function loadTOCNode(){} Article ID : 259298 Last Review转载 2007-09-04 17:22:00 · 985 阅读 · 0 评论 -
MSXML介绍
MSXML4不能createinstance的解决方法!(附MSXML介绍)调用MSXML时 如果HRESULT hr=pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40)); 不能创建成功那说明没有初始化COM组件。只要将 CoInitialize(NULL); 放到程序初始化函数中就行了!~ 另外在stuafx.h中要记得包含#im转载 2007-08-23 18:13:00 · 4408 阅读 · 0 评论 -
提高 Linux 上 socket 性能
M. Tim Jones (mtj@mtjones.com), 资深软件工程师, Emulex原文地址:http://www.ibm.com/developerworks/cn/linux/l-hisock.html 在开发 socket 应用程序时,首要任务通常是确保可靠性并满足一些特定的需求。利用本文中给出的 4 个提示,您就可以从头开始为实现最佳性能来设计并开发 socket 程序。本转载 2007-08-17 14:41:00 · 654 阅读 · 0 评论 -
非阻塞套接字资料收集
1、 两种I/O模式 * 阻塞模式: 执行I/O操作完成前会一直进行等待,不会将控制权交给程序。套接字默认为阻塞模式。可以通过多线程技术进行处理。 * 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权。这种模式使用起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误。但功能强大。 为了解决这个原创 2007-08-17 14:35:00 · 1673 阅读 · 0 评论 -
Short description of the Internet checksum[IP检验和]
IP checksum definitionThe IP checksum is the 16 bit ones complement of the ones complement sum of all 16 bit words in the header.One question many people may ask is "What is the 1s complement s转载 2007-08-08 14:18:00 · 1087 阅读 · 0 评论 -
内存对齐
#include int main() { struct ms { double x; char a; int y; };// }__attribute__((packed)); printf("%d/n", sizeof(struct ms));转载 2007-08-03 17:46:00 · 715 阅读 · 0 评论 -
#ifndef和#pragma once的不同
为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,一种是#pragma once方式。在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别。 方式一: #ifndef __SOMEFILE_H__ #define __SOMEFILE_H__ ... ... // 一些声明语句 #endi转载 2007-08-04 00:32:00 · 798 阅读 · 0 评论