
小学
文章平均质量分 70
李海峡
上海完美时空 美术总监
杭州渡口网络 美术总监
苏州九唐 首席美术技术
昱泉国际 美术总指导
展开
-
VC快捷键大全
F1: 帮助 Ctrl+O :OpenCtrl+P :PrintCtrl+N :NewCtrl+Shift+F2 :清除所有书签F2 :上一个书签Shift+F2 :上一个书签Alt+F2 :编辑书签Ctrl+F2 :添加/删除一个书签F12 :Goto definitionShift+F12 :Goto referenceCtrl+Num+ :Displa原创 2005-07-22 10:16:00 · 877 阅读 · 1 评论 -
解决Visual Studio 2005中找不到MFC80UD.dll的问题
今天用VS2005建立一个MFC项目,在运行时遇到下面这个找不到MFC80UD.dll的问题。这个问题可能是Manifest 引起的,因此我们可以通过修改项目->属性->清单工具->输入输出,把“嵌入清单”选“否”,然后编译、链接、运行即可。原创 2009-09-22 17:40:00 · 593 阅读 · 0 评论 -
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 · 3060 阅读 · 1 评论 -
四舍五入和比较两个浮点数函数
//四舍五入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 · 1305 阅读 · 0 评论 -
位运算
<br />在计算机程序中,数据的位是可以操作的最小数据单位,理论上可以用“位运算”来完成所有的运算和操作。<br /> 一般的位操作是用来控制硬件的,或者做数据变换使用,但是,灵活的位操作可以有效地提高程序运行的效率。C语言提供了位运算的功能, 这使得C语言也能像汇编语言一样用来编写系统程序。<br />位运算符C语言提供了六种位运算符:<br /> & 按位与<br /> | 按位或<br /> ^ 按位异或<br /> ~ 取反<br /> << 左移<br /> >> 右移<br />原创 2010-06-14 16:47:00 · 491 阅读 · 0 评论 -
c++类对象的内存模型
<br />C++类对象内存结构<br /> 首先介绍一下C++中有继承关系的类对象内存的布局:在C++中,如果类中有虚函数,那么它就会有一个虚函数表的指针__vfptr,在类对象最开始的内存数据中。之后是类中的成员变量的内存数据。<br /> 对于子类,最开始的内存数据记录着父类对象的拷贝(包括父类虚函数表指针和成员变量)。 之后是子类自己的成员变量数据。<br /> 对于子类的子类,也是同样的原理。但是无论继承了多少个子类,对象中始终只有一个虚函数表指针。<br /><br /> <br /原创 2010-06-14 17:07:00 · 722 阅读 · 0 评论 -
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 · 9574 阅读 · 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 · 1580 阅读 · 0 评论 -
大小端、网络字节序问题
总结:1、80X86使用小端法,网络字节序使用大端法。 2、二进制的网络编程中,传送数据,最好以unsigned char, unsigned short, unsigned int 来处理, unsigned short ,unsigned short 以网络字节序处理后再拷贝到发送的buffer里 3、结构体前要指定原创 2011-11-20 22:23:48 · 568 阅读 · 0 评论 -
C/C++中的日期和时间 time_t与struct tm转换
摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单元)1.概原创 2011-11-12 10:34:55 · 697 阅读 · 0 评论 -
VC 常见问题百问
(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。原创 2011-11-12 11:03:04 · 657 阅读 · 0 评论 -
C++学习
陈抒:以我经验来看构成C++学习困难有四点:知识点广泛而且难度高。按照几年前Scot Mayer在Effective C++中对C++的定义来看,C++是一门多范型语言,包括了C、面向对象编程和泛型编程。程序员需要正确理解很多基础概念,比如,堆和栈的区别、指针、指针的指针、虚函数的内部原理、继承引发的对象内存布局、多继承引发的模棱两可、模板以及编译器推导、STL算法原创 2012-12-06 10:51:56 · 695 阅读 · 0 评论 -
应用程序之间互相通讯的几种方法
应用程序之间的数据交换(互相通讯)一直是困扰广大程序员的难题,尽管已经出现了各式各样的解决方案,但迄今为止没有哪一种方案是完美无缺的。因此,只有学习并了解了它们的优缺点后,才能在特定的情况下选择最佳方案,以满足最终的要求。 1、共享 在硬盘上建立一个文件,一个应用程序往该文件里写数据(可以不关闭文件,但必须刷新缓冲区),另一个应用程序以共享方式打开这个文件并读取其中的内容,转载 2013-03-15 23:42:11 · 1319 阅读 · 0 评论 -
编程中常用的一些小工具及说明
编程中常用的一些小工具及说明一、编辑工具 1.UltraEdit. 一款强大的文本编辑器,支持动态刷新。 2.Notepad++. 一款强大的文本编辑器,支持插件技术。 二、调试工具 1.DebugView. 会对OutputDebugString函数输出的字符器显示到当前UI。 2.Tcpview. 查看当前电脑所有TCP原创 2012-11-08 15:18:23 · 1058 阅读 · 0 评论 -
如何通过传指针得到一个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 · 1757 阅读 · 0 评论 -
如何手工创建release版本的dmp文件
1.在任务管理器中,选择想要观察的可执行文件,点击右键,点击即可!原创 2013-08-31 11:52:24 · 1029 阅读 · 0 评论 -
线程本地存储器--读《windows核心编程》第21章有感
线程本地存储器:用来储存线程独立的信息。主要给 DLL 使用,因为 DLL 不能确定调用其函数的线程多少(EXE 的编写者肯定知道这一点),在需要执行和线程相关的任务时,有可能需要为多个线程分别保存独立的状态和数据。 最简单的,Win32 API SetLastError / GetLastError 的实现,大部分 Win32原创 2009-09-11 17:30:00 · 623 阅读 · 0 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不原创 2009-09-11 14:34:00 · 499 阅读 · 0 评论 -
GDI资源为什么会耗尽呢,到哪种程度才表现为耗尽呢?
为了回答这一问题,我们用Windows自带的任务管理器观察后发现,当程序界面开始混乱时,进程的GDI对象值为9999,那么为什么GDI对象达到9999后界面才发生混乱呢,带着这个疑问,我查找了一些资料,简单的了解到了Windows对GDI对象的管理方式。 GDI对象,实际上是Windows系统维护的一些数据结构。微软基于稳定性和健壮性考虑,将所有GDI对象的管理权都交给Windows原创 2009-07-28 11:17:00 · 7289 阅读 · 1 评论 -
UTC时间与北京时间的差多久
每个地区都有自己的本地时间,在网上以及无线电通信中时间转换的问题就显得格外突出。我自己就经常混淆于此,特地研究了一下,记录在此以备忘。 整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。UTC与格林尼治平均时(GMT, Greenwich Mean Time)原创 2009-07-30 10:22:00 · 37893 阅读 · 0 评论 -
多线程编程之二——MFC中的多线程开发
五、MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外的用户输入,响应用户及系统所产生的事件和消息等。但对于Win32的API编程而言原创 2009-07-30 16:17:00 · 453 阅读 · 0 评论 -
多线程编程之三——线程间通讯
七、线程间通讯 一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。 使用全局变量进行通信由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对于标准原创 2009-07-30 16:17:00 · 488 阅读 · 0 评论 -
多线程编程之四——线程的同步
八、线程的同步 虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能原创 2009-07-30 16:18:00 · 432 阅读 · 0 评论 -
多线程编程之一——问题提出
一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下: void CSingleThreadDlg::OnSleepSixSecond() { Sleep(6000);原创 2009-07-30 16:15:00 · 777 阅读 · 0 评论 -
标准库bitset类型介绍
有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值。位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法。标准库提供了bitset类使得处理位集合更容易一些。要使用bitset类就必须要包含相关的头文件。在本书提供的例子中,假设都使用了std::bitset的using声明:#include using std::bitset;3.5.1原创 2009-08-18 15:21:00 · 1631 阅读 · 1 评论 -
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 · 435 阅读 · 0 评论 -
c++位运算
前言 看到有些人对位运算还存在问题,于是决定写这篇文章作个简要说明。 什么是位(bit)? 很简单,位(bit)就是单个的0或1,位是我们在计算机上所作一切的基础。计算机上的所有数据都是用位来存储的。一个字节(BYTE)由八个位组成,一个字(WORD)是二个字节或十六位,一个双字(DWORD)是二个字(WORDS)或三十二位。如下所示:原创 2009-08-18 14:58:00 · 590 阅读 · 0 评论 -
我的读书列表
设计模式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 · 631 阅读 · 0 评论 -
一些操作粘贴板的代码
一些操作粘贴板的代码 1.CBitmap位图拷贝到粘贴板里面. OpenClipboard(); // 打开粘贴板EmptyClipboard(); //清空粘贴板SetClipboardData(CF_BITMAP, bitmap.GetSafeHandle()); CloseClipboard(); //关闭粘贴板 2.CString字符串拷贝到位图原创 2009-06-20 11:22:00 · 1393 阅读 · 0 评论 -
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 · 639 阅读 · 0 评论 -
Visual C++/MFC入门教程
Visual C++/MFC入门教程 VC开发指南1.1 如何学好VC 这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起到更好的效果。万事开头难,为了帮助朋友们更快的掌握VC开发,下面我将自己的一点体会讲一下: 1、需要有好的C/C++基础。正所谓“磨刀不误砍柴工”,最开始接触VC时不要急于开始Windows程序开发,而是应该进行一些字原创 2009-09-08 20:06:00 · 2403 阅读 · 1 评论 -
动态库认识之一: __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 · 1722 阅读 · 0 评论 -
动态库认识之二 关于DLL的函数
关于DLL的函数: 动态链接库中定义有两种函数:导出函数(export function)和内部函数(internal function)。 导出函数可以被其它模块调用,内部函数在定义它们的DLL程序内部使用。 输出函数的方法有以下几种: 1、传统的方法 在模块定义文件的EXPORT部分指定要输入的函数或者变量。语法格原创 2009-09-11 11:53:00 · 686 阅读 · 0 评论 -
管理
1.每次进去的时候读系统时间,判断---这样很容易破解,因为时间是可以该的或者写注册表信息,多少次就不能用了,这样也很容易破解,人家该注册表或重装系统在系统某个不太注意的地方写个文件,也可以,同样要防止别人发现和修改这个文件如果你在网上有个数据库,可以把使用者的信息写到里面,这样也很容易破解,人家可以在你检测的时候跳过上网.但是,假如你能巧妙地综合以上几点,要破解就比较麻烦,只要用户破解所花的代价原创 2005-05-24 13:26:00 · 1417 阅读 · 0 评论