自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 收藏
  • 关注

原创 如何通过传指针得到一个list对象列表的地址

从list列表取一个地址,通过传指针传到外面使用的例子1.函数的写法bool CTradeData::GetOneSymbolInfoFromAllSymbol(CString symbol,DATA_SYMBOL** pSymbolInfo){ BOOL bRet = FALSE; SYMBOL_LIST::iterator it = m_symbolList.begin()

2013-08-31 11:55:42 1738

原创 如何手工创建release版本的dmp文件

1.在任务管理器中,选择想要观察的可执行文件,点击右键,点击即可!

2013-08-31 11:52:24 1008

原创 解决VS2010速度慢的问题

最近在自己的机器上装了Visual Studio 2010,安装完成后,跑起来发现速度很慢(5年前的电脑,1G的内存。。。),有没有办法能够让Visual Studio跑得更顺畅一些?曾经在网上看到过通过设置VS2005/2008中相关选项,能够起到提高Visual Studio速度的文章。在这里,自己做一些整理,展示如果通过设置Visual Stuido 2010中的设置选项,从而提高速度。

2013-03-25 15:49:59 1928

转载 应用程序之间互相通讯的几种方法

应用程序之间的数据交换(互相通讯)一直是困扰广大程序员的难题,尽管已经出现了各式各样的解决方案,但迄今为止没有哪一种方案是完美无缺的。因此,只有学习并了解了它们的优缺点后,才能在特定的情况下选择最佳方案,以满足最终的要求。   1、共享   在硬盘上建立一个文件,一个应用程序往该文件里写数据(可以不关闭文件,但必须刷新缓冲区),另一个应用程序以共享方式打开这个文件并读取其中的内容,

2013-03-15 23:42:11 1293

转载 很幽默的讲解六种Socket I/O模型

本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件

2013-03-11 11:00:56 713

转载 VC防止窗口和控件闪烁的方法

VC防止窗口和控件闪烁的方法   一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输

2013-03-08 15:51:29 777

原创 解决窗口刷新闪烁

一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。一般显卡的刷新周期是 1/80秒左右,具体数字可以自己设置的。这样问题就来

2012-12-11 17:01:06 860

原创 C++学习

陈抒:以我经验来看构成C++学习困难有四点:知识点广泛而且难度高。按照几年前Scot Mayer在Effective C++中对C++的定义来看,C++是一门多范型语言,包括了C、面向对象编程和泛型编程。程序员需要正确理解很多基础概念,比如,堆和栈的区别、指针、指针的指针、虚函数的内部原理、继承引发的对象内存布局、多继承引发的模棱两可、模板以及编译器推导、STL算法

2012-12-06 10:51:56 672

原创 编程中常用的一些小工具及说明

编程中常用的一些小工具及说明一、编辑工具    1.UltraEdit. 一款强大的文本编辑器,支持动态刷新。    2.Notepad++. 一款强大的文本编辑器,支持插件技术。    二、调试工具    1.DebugView. 会对OutputDebugString函数输出的字符器显示到当前UI。        2.Tcpview.   查看当前电脑所有TCP

2012-11-08 15:18:23 1030

原创 大小端、网络字节序问题

总结:1、80X86使用小端法,网络字节序使用大端法。          2、二进制的网络编程中,传送数据,最好以unsigned char, unsigned short, unsigned int                来处理, unsigned short ,unsigned short 以网络字节序处理后再拷贝到发送的buffer里          3、结构体前要指定

2011-11-20 22:23:48 551

原创 VC 常见问题百问

(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。

2011-11-12 11:03:04 644

原创 C/C++中的日期和时间 time_t与struct tm转换

摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概

2011-11-12 10:34:55 681

原创 C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)

<br />1、C++各大有名库的介绍——C++标准库<br />2、C++各大有名库的介绍——准标准库Boost<br />3、C++各大有名库的介绍——GUI<br />4、C++各大有名库的介绍——网络通信<br />5、C++各大有名库的介绍——XML<br />6、C++各大有名库的介绍——科学计算<br />7、C++各大有名库的介绍——游戏开发<br />8、C++各大有名库的介绍——线程<br />9、C++各大有名库的介绍——序列化<br />10、C++各大有名库的介绍——字符串<br

2010-06-16 01:02:00 9487 6

原创 Const,Const函数,Const变量,函数后面的Const

<br />关键字:Const,Const函数,Const变量,函数后面的Const<br /> <br />看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。<br />const 是constant 的缩写,“恒定不变”的意思。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序

2010-06-16 00:44:00 1564

原创 c++类对象的内存模型

<br />C++类对象内存结构<br />   首先介绍一下C++中有继承关系的类对象内存的布局:在C++中,如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。<br />   对于子类,最开始的内存数据记录着父类对象的拷贝(包括父类虚函数表指针和成员变量)。 之后是子类自己的成员变量数据。<br />   对于子类的子类,也是同样的原理。但是无论继承了多少个子类,对象中始终只有一个虚函数表指针。<br /><br /> <br /

2010-06-14 17:07:00 706

原创 位运算

<br />在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。<br />  一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。<br />位运算符C语言提供了六种位运算符:<br />  & 按位与<br />  | 按位或<br />  ^ 按位异或<br />  ~ 取反<br />  << 左移<br />  >> 右移<br />

2010-06-14 16:47:00 479

原创 四舍五入和比较两个浮点数函数

//四舍五入1float FloatRound(float fVal , int n){  CString strFmt; CString strVal; float  b;    strFmt.Format(_T("%%.%df"),n);//n是你要四舍五入得到的位数  strVal.Format(strFmt,fVal); b=_wtof(strVal);   return b; }

2010-05-26 13:46:00 1288

原创 tree树形控件之循环遍历

最近在写程序时需要对树形控件进行查询指定文本的内容,因此写了本函数。 //item:待遍历树的根节点,strtext:待查找节点名称HTREEITEM  Ctest2Dlg::FindItem(CTreeCtrl &ctrlTree ,HTREEITEM  item, CString strtext)  {   HTREEITEM  hfind;  //空树,直接返回NULL  if(

2010-02-26 14:05:00 6776

原创 Socket粘包问题

这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一两个简单概念长连接与短连接:1.长连接     Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接     Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方

2009-09-26 22:29:00 870

原创 C++程序设计之四书五经

http://www.chinaunix.net 作者:whyglinux  发表于:2004-05-11 12:10:11 【发表评论】【查看原文】【C/C++讨论区】【关闭】 C++程序设计之四书五经 [转] 转自:http://www.royaloo.com/index.html 作者:荣耀 C++程序设计之四书五经(上篇) C++是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现

2009-09-26 22:12:00 3023 1

原创 献给想深入学习网络编程的朋友

C,C++网络编程学习简明指南 1. 扎实的C,C++基础知识 参考资料《C程序设计》,《C++ primer》。 2. TCP/IP协议 经典书是:W.Richard Stevens 著《TCP/IP详解》三卷书,卷1是协议,卷2是实现,卷3是TCP事务协议等。还有官方的协议文档:RFC 当然也可以在网上下载电子书。 经典的开源协议分析工具:Wireshark. 简单的开源TCP/IP协议栈:L

2009-09-26 21:56:00 1512

原创 解决Visual Studio 2005中找不到MFC80UD.dll的问题

今天用VS2005建立一个MFC项目,在运行时遇到下面这个找不到MFC80UD.dll的问题。这个问题可能是Manifest 引起的,因此我们可以通过修改项目->属性->清单工具->输入输出,把“嵌入清单”选“否”,然后编译、链接、运行即可。

2009-09-22 17:40:00 584

原创 线程本地存储器--读《windows核心编程》第21章有感

线程本地存储器:用来储存线程独立的信息。主要给   DLL   使用,因为   DLL   不能确定调用其函数的线程多少(EXE   的编写者肯定知道这一点),在需要执行和线程相关的任务时,有可能需要为多个线程分别保存独立的状态和数据。         最简单的,Win32   API   SetLastError   /   GetLastError   的实现,大部分   Win32  

2009-09-11 17:30:00 610

原创 C++中extern “C”含义深层探索

1.引言  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不

2009-09-11 14:34:00 486

原创 动态库认识之二 关于DLL的函数

关于DLL的函数:         动态链接库中定义有两种函数:导出函数(export   function)和内部函数(internal   function)。     导出函数可以被其它模块调用,内部函数在定义它们的DLL程序内部使用。         输出函数的方法有以下几种:         1、传统的方法         在模块定义文件的EXPORT部分指定要输入的函数或者变量。语法格

2009-09-11 11:53:00 676

原创 动态库认识之一: __declspec(dllexport)与.def文件

在VC++中,如果生成DLL可以不使用.def文件。只需要在VC++的函数定义前要加__declspec(dllexport)修饰就可以了。但是使用__declspec(dllexport)和使用.def文件是有区别的。如果DLL是提供给VC++用户使用的,只需要把编译DLL时产生的.lib提供给用户,它可以很轻松地调用你的DLL。但是如果DLL是供VB、PB、Delphi用户使用的,那么会产生一

2009-09-11 11:46:00 1695

原创 HWND_BROADCAST的一个用法——修改环境变量,立即通知系统

在编程时遇到一个问题: 就是程序通过修改注册表,修改了系统的环境变量,但是不会立即生效,除非在【我的电脑】上点击右键,然后打开环境变量的窗口,点击【OK】后,才能生效。后来用Spy++工具捕获消息,发现在点击【OK】按钮时,发送了WM_SETTINGCHANGE消息。在网上查找原因时发现,修改了注册表之后,系统需要重启,或者向上述操作,系统才能知道注册表被修改了,之后才能生效。如果想修改完环境

2009-09-10 15:11:00 2829

原创 Windows Socket五种I/O模型

Windows Socket五种I/O模型 如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的。Windows操作系统提供了选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。每一种模型均适用于一种特定的应用场

2009-09-08 20:43:00 552

原创 网络编程学习小结

几种网络编程方式:ISAPI、CGI、WinInet、Winsock它们之间的区别:1)  ISAPI主要是开发基于浏览器客户端与服务器端程序。效率比CGI方式高,而且也扩展了CGI没有的一些功能。(基于TCP/IP模型中的应用层)2)  CGI主要是开发基于浏览器客户端与服务器端程序。(基于TCP/IP模型中的应用层)3)  WinInet主要是开发客户端程序。(基于TCP/

2009-09-08 20:12:00 512

原创 Visual C++/MFC入门教程

 Visual C++/MFC入门教程 VC开发指南1.1 如何学好VC  这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起到更好的效果。万事开头难,为了帮助朋友们更快的掌握VC开发,下面我将自己的一点体会讲一下:  1、需要有好的C/C++基础。正所谓“磨刀不误砍柴工”,最开始接触VC时不要急于开始Windows程序开发,而是应该进行一些字

2009-09-08 20:06:00 2358 1

原创 delete this的使用

In order to understand "delete this" :  First Step------dive into "delete p" delete p 执行了哪两个步骤?delete p 是一个两步的过程:调用析构函数,然后释放内存。delete p产生的代码看上去是这样的(假设是Fred*类型的):// 原始码:delete p;if (p != NULL

2009-09-08 19:53:00 622

原创 模式匹配的KMP算法详解

 模式匹配的KMP算法详解这种由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现的改进的模式匹配算法简称为KMP算法。大概学过信息学的都知道,是个比较难理解的算法,今天特把它搞个彻彻底底明明白白。注意到这是一个改进的算法,所以有必要把原来的模式匹配算法拿出来,其实理解的关键就在这里,一般的匹配算法:int Index(String S,String T,in

2009-08-25 10:48:00 1008

原创 我的读书列表

设计模式Windows程序设计Windows核心编程C++编程思想Effective_STLEffective C++Exceptional C++C++ Primer深度探索C++对象模型高质量C++-C编程指南COM本质论标准建模语言UML教程深入浅出MFCVisual C++MFC扩展编程实例Visual_C++__MFC编程实例 人月神话 计算机程序设计艺术(第一卷)计算机程序设计艺术(第

2009-08-20 21:00:00 581

原创 软件工程的七条基本原理

自从1968年提出“软件工程”这一术语以来,研究软件工程的专家学者们陆续提出了100多条关于软件工程的准则或信条。 美国著名的软件工程专家 Boehm 综合这些专家的意见,并总结了TRW公司多年的开发软件的经验,于1983年提出了软件工程的七条基本原理。   Boehm 认为,这七条原理是确保软件产品质量和开发效率的原理的最小集合。它们是相互独立的,是缺一不可的最小集合;同时,它们又是相当完备

2009-08-20 15:49:00 612

原创 软件项目管理

软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。      软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。而研究软件项目管理为

2009-08-20 10:44:00 881

原创 影响计算机算法世界的十位大师

影响计算机算法世界的十位大师DonE. Knuth(美)高德纳 《计算机程序设计艺术》的作者;Edsger Wybe(荷兰) Dijkstra算法(最短路径算法)发明者;George Dantzing(俄国) 运筹学大师;James Cooley(美) FFT(快速傅利叶变换)算法发明者,该算法主要用语数字信号处理技术;John Backus(美) FORTRAN之父,又提出规范描编程

2009-08-19 10:54:00 766

原创 标准库bitset类型介绍

 有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值。位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法。标准库提供了bitset类使得处理位集合更容易一些。要使用bitset类就必须要包含相关的头文件。在本书提供的例子中,假设都使用了std::bitset的using声明:#include using std::bitset;3.5.1 

2009-08-18 15:21:00 1593 1

原创 c++位运算

 前言     看到有些人对位运算还存在问题,于是决定写这篇文章作个简要说明。         什么是位(bit)?         很简单,位(bit)就是单个的0或1,位是我们在计算机上所作一切的基础。计算机上的所有数据都是用位来存储的。一个字节(BYTE)由八个位组成,一个字(WORD)是二个字节或十六位,一个双字(DWORD)是二个字(WORDS)或三十二位。如下所示:          

2009-08-18 14:58:00 579

原创 STL list使用心得

 1.list排序 struct NOTIFY_RECEIVE_HISTORY_GameInfo_PACKET{ char   Gmcode[4] ; //游戏编号 char   round[16];   //期号 uint64 Time2 ;     //开始时间 uint32 resbits;     //该期输赢结果,玩法对应位1则赢。玩法值见附录  uint16 sum;     

2009-08-18 14:49:00 711

原创 strcpy ,strncpy ,strlcpy地用法

好多人已经知道利用strncpy替代strcpy来防止缓冲区越界。但是如果还要考虑运行效率的话,也许strlcpy是一个更好的方式。1. strcpy我们知道,strcpy 是依据 /0 作为结束判断的,如果 to 的空间不够,则会引起 buffer overflow。strcpy 常规的实现代码如下(来自 OpenBSD 3.9):char *strcpy(char *to, const

2009-08-18 14:47:00 429

CmnHdr.h 核心编程源码编译需要用到的头文件

CmnHdr.h 核心编程源码编译需要用到的头文件

2009-08-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除