自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 收藏
  • 关注

转载 Python 3 的新特性

 2009 年 2 月 02 日Python 3 是 Guido van Rossum 功能强大的通用编程语言的最新版本。它虽然打破了与 2.x 版本的向后兼容性,但却清理了某些语法方面的问题。本文是系列文章中的第一篇,介绍了影响该语言及向后兼容性的各种变化,并且还提供了新特性的几个例子。Python 版本 3,也被称为 Python 3000 或 Py3K(仿效 Microsoft®

2010-05-21 15:03:00 798

转载 Ubuntu Linux系统的目录结构

Ubuntu系统目录结构  以下为Ubuntu目录的主要目录结构,您稍微了解它们都包含了哪些文件就可以了,不需要记忆。 / 根目录 │ ├boot/ 启动文件。所有与系统启动有关的文件都保存在这里 │ └grub/ Grub引导器相关的文件 │ ├dev/

2010-05-12 17:09:00 747

转载 STL简介

 一、STL简介  STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。  STL的代码从广义上讲分为三类:alg

2010-03-01 00:04:00 598

转载 const用法详解

面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的 就const直接可以取代c中的#define 以下几点很重要,学不好后果也也很严重 const 1. 限定符声明变量只能被读   const int i=5;   int j=0;   ...   i=j;  //非法,导致编译错误

2010-02-28 11:09:00 610

转载 c++ 虚函数的实现机制:笔记

1、c++实现多态的方法其实很多人都知道,虚函数在c++中的实现机制就是用虚表和虚指针,但是具体是怎样的呢?从more effecive c++其中一篇文章里面可以知道:是每个类用了一个虚表,每个类的对象用了一个虚指针。具体的用法如下:class A{public:    virtual void f();    virtual void g();pri

2010-02-26 18:06:00 427

转载 linux c/c++ GDB教程详解

学习使用了GDB一段时间后,发现它真的好强大!好用!GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“

2010-02-26 11:30:00 766

转载 Critical Section,Mutex,Semaphore,Event区别

临界区(Critical Section)    保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时访问临界区,那么在有一个线程进 入后其他所有试图访问此临界区的线程将被挂起,并一直持续到进入临界区的线程离开。临界区在被释放后,其他线程可以继续抢占,并以此达到用原子方式操作共 享资源的目的。       临界区包含两个

2009-12-25 17:36:00 751

转载 可变参数的宏定义

引言:在c/c++程序设计中,经常采用printf来调试程序,但是在要发布程序时不得不从代码中删掉那些多余的printf语句,这是一项繁琐的工作。由此想到可变参数的宏,引文介绍了如何定义可变参数的宏,以及在不同C标准和不同编译器中的差别。                          ----------Rube-----------------------------------

2009-12-15 17:16:00 830

转载 一些有用的转换

Relation with Conversion1. WCHAR / TCHAR:WideCharToMultiByte()wcstombs()CString()ATL macros: OLE2A(),W2T(),W2CT(),lstrcpy()    NOTE: #include     swprintf(wchar,L"%LS",char);        wc

2009-12-11 09:31:00 641

转载 链接错误LNK2001

习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于     编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,     编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不     明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非     常困难。       初学者在学习VC++的

2009-12-09 14:23:00 477

转载 __cdecl __fastcall与 __stdcall 调用约定

__cdecl __fastcall与 __stdcall 调用约定: __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。 1、__stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回

2009-12-09 10:40:00 440

转载 三种常规异步WinSock I/O模型

 1.基于事件套接字集合的select模型select(选择)模型是Winsock中最常见的I/O模型。之所以称其为“select模型”,是由于它的“中心思想”便是利用select函数,实现对I/O的管理!最初设计该模型时,主要面向的是某些使用Unix操作系统的计算机,它们采用的是Berkeley套接字方案。select模型已

2009-11-24 20:19:00 948

转载 Winsock异步模型之二(WSAEventSelect)

 目录: 一、WinSock I/O模型分析 1.WSAAsuncSelect模型 2.WSAEventSelect模型 3.重叠(Overlapped)I/O模型 二、聊天软件的设计与分析 1.程序功能 2.程序设计 3.实现是的关键点 三、体会 四、源代码一、WinSock I/O模型分析Winsock提供了五种套接字I/O模型来解决这些

2009-11-24 20:13:00 1955

转载 Winsock Select模型范例

 服务器端:#include #include void InitSocket(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData );

2009-11-24 20:06:00 833

转载 你真的了解EOF和feof吗?

判断文件结束有两种方法:EOF和feof()查看stdio.h可以看到如下定义:#define EOF (-1)#define _IOEOF 0x0010 #define feof(_stream) ((_stream)->_flag & _IOEOF)由此可以看出,这两种方式的原理是不同的。有人说EOF只能用于文本文件,其实不然,还要看定义的变量的类型。下面这段程

2009-10-10 13:59:00 1009

转载 VC 中与字符串相关的宏 _T、TEXT,_TEXT、L 的作用

一、 在字符串前加一个L作用:    如  L"我的字符串"    表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。  strlen("asd")   =   3;     strlen(L"asd")   =   6;  二、  _T宏可以把一个引号引起来的字符串,根据你的环境设置,使得编译器会根据编译目标环境选择合适的

2009-09-18 10:49:00 521

转载 MFC消息循环

首先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵WinThread::PumpMessage)和MFC的消息在窗口之间的路由是两件不同的事情。在MFC的应用程序中(应用程序类基于CWinThread继承),必须要有一个消息循环,他的作用是从应用程序的消息队列中读取消息,并把它派送出去(::DispatchMessage)。而消息路由是指消息派送

2009-09-18 10:47:00 811

转载 在VC下使用标准的socket函数编程的步骤

在VC下使用标准的socket函数编程的步骤    socket是一种在Linux或者Unix下非常流行的网络编程方式,这种方式简单有效,可以很灵活的完成各种复杂的协议控制,个人感觉比使用MFC下的网络相关类库要来的更舒服一些,因为所有一切都是自己可控的。但是使用socket编程有一个非常不方便的地方在于,由于在Linux下没有一个像VC这样强大的调试平台,网络通信过程中的

2009-09-18 10:46:00 1270

转载 AfxBeginThread和CreateThread具体区别

       具体说来,CreateThread这个 函数是windows提供给用户的API函数,是SDK的标准形式,在使用的过程中要考虑到进程的同步与互斥的关系,进程间的同步互斥等一系列会导致操作系统死锁的因素,用起来比较繁琐一些,初学的人在用到的时候可能会产生不可预料的错误,建议多使用AfxBeginThread,是编译器对原来的CreateThread函数的封装,用与MFC编程(

2009-09-18 10:25:00 786

转载 利用CAsyncSocket类实现Socket编程

随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要。许多文章都曾经介绍过用VC++进行Socket编程的方法。但由于都是直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。其实,VC++的MFC类库中提供了CAsynCSocket这样一个套接字类,用它来实现Socket编程,是非常方便的。 客户端 创建一个DialogBased项目:CSock

2009-09-18 09:40:00 656

原创 关于mfc下多线程socket出错

问?: 我用CSocket写通信程序,但执行到下面的函数时总出错,是什么原因?是多线程通信,每个线程创建了一个套接字:CMySocket *m_pClientSocket = New CMySocket;然后在OnSendSocket函数中调用:m_pClientSocket->Send(str,len);如果消息很少,或者中间有Sleep,则没有错误,否则必然出现ASSE

2009-09-10 15:25:00 3751 2

转载 关于dll调用

不想说那么多了,希望下次不会再出这个错!调用DLL函数,出现错误Run-Time Check Failure#0 - The value of ESP was not properly saved across a function call.This is usually a result of calling a function declared with onecall

2009-09-10 14:00:00 728

转载 __cdecl __fastcall与 __stdcall

  Visual C++ Compiler Options可以指定的Calling Convention有 3种:  /Gd /Gr /Gz  这三个参数决定了:  1.函数参数以何种顺序入栈,右到左还是左到右。  2.在函数运行完后,是调用函数还是被调用函数清理入栈的参数。  3.在编译时函数名字是如何转换的。  下面我们分别详细介绍:  1./Gd  这是编译器

2009-08-25 16:36:00 402

转载 函数WaitForMultipleObjects整理

函数WaitForMultipleObjects整理DWORD WaitForMultipleObjects( DWORD nCount, const HANDLE* lpHandles, BOOL bWaitAll, DWORD dwMilliseconds);其中参数nCount 句柄的数量 最大值为MAXIMUM_WAIT_OBJECTS(64)HAN

2009-08-25 16:33:00 851

转载 CSocket超时(Time-Out)功能的设置及其局限性

CSocket 是一个同步的socket类,如“接收”(Receive)、“发送”(Send) 和“连接”(Connect) 均是阻塞操作,即要等到操作成功执行完毕或套接字上出现错误后,对这些函数的调用才有返回结果。如果连接不上,只有超时以后才能返回。在某些情况下,操作可能永远不能成功完成,这将导致程序无限循环等待操作完成。例如错误的域名解释,连接不上的IP地址,这回让用户等待近 40秒钟的时

2009-08-25 16:32:00 1019

转载 MFC下CSocket编程详解

MFC下CSocket编程详解: 1. 常用的函数和注意事项(详细的函数接口说明请查看MSDN):    CSocket::Create 初始化(一般写服务器程序都不要用为好,用下面的 CSocket::Socket 初始化)   CSocket::Socket初始化    CSocket::SetSockOpt 设置socket选项    CSocket::Bind 绑定地址

2009-08-25 10:40:00 670

转载 关于DLL

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

2009-08-13 10:08:00 552

转载 关于C++中posix pthread线程函数在类中封装的问题

    我们通常有这样的需求:需要在C++中用多线程处理可以并行处理的问题,且把线程函数封装在类中,而把线程函数封装在类中,导致了this指针作为默认的参数被传进了函数中,从而和线程函数参数不能匹配,不能通过编译。市面上一般有以下几种解决方案:1. 将线程函数作为全局函数, 从而避免了this指针作为隐含参数的作怪行为,但这样线程函数却无法访问类中的私有变量,此为一大缺憾。

2009-08-12 16:00:00 1091

原创 关于全日期的统计

            "select t1.s_date as mydate, decode(t2.iDate, null, 0, t2.iCount) as icount " +            " from " +            "(select to_date({0},yyyy-mm-dd)+(rownum-1) s_date from all_tables

2009-08-05 13:35:00 531

转载 Oracle时间日期操作

sysdate+(5/24/60/60) 在系统时间基础上延迟5秒sysdate+5/24/60 在系统时间基础上延迟5分钟sysdate+5/24 在系统时间基础上延迟5小时sysdate+5 在系统时间基础上延迟5天add_months(sysdate,-5) 在系统时间基础上延迟5月add_months(sysdate,-5*12) 在系统时间基础上延迟5年上

2009-08-05 13:21:00 784

原创 c语言 宏

C标准中指定了一些预定义的宏,对于编程经常会用到。下面这个表中就是一些常常用到的预定义宏。         __DATE__     进行预处理的日期(“Mmm   dd   yyyy”形式的字符串文字)         __FILE__     代表当前源代码文件名的字符串文字         __LINE__     代表当前源代码中的行号的整数常量         __TIME__    

2009-06-27 18:36:00 548

原创 关于vs 2008字符集问题

visual studio 建立的c/c++工程,默认字符集是unicode,此时一些底层api会出问题,例如如下片段: #ifdef UNICODE#define GetPrivateProfileString  GetPrivateProfileStringW#else#define GetPrivateProfileString  GetPrivateProfileS

2009-06-27 11:22:00 2642

原创 关于unicode

最近做了个项目,获得cpu占用率,动态引用ntdll.dll里的函数,编译环境:visual studio 2008,但是调试时发现在LoadLibrary函数返回的值无法解析,这样在GetProcAddress时返回null,郁闷了一下午,终于在一个老外的论坛上找到答案,如下: ask:Im using MS Visual Studio C++ 2008 Express.  Iv

2009-06-26 16:47:00 671

转载 NtQuerySystemInformation

Native API乃Windows用户模式中为上层Win32 API提供接口的本机系统服务。平常我们总是调用MS为我们提供的公用的Win32 API函数来实现来实现我们系统的功能。今天我们要谈的是如何通过本机系统服务(Native API)来探测本机系统信息。当然,微软没有为我们提供关于本机系统服务的文档 (Undocumented),也就是不会为对它的使用提供任何的保证,所以我们不提倡使用Na

2009-06-26 13:44:00 727

转载 NOD32与MSN冲突导致80072745错误

之前XP环境下上MSN还算是正常的,但是在用了几天之后LiveMessenger开始提示80072745错误,无法登陆.一直以为是MSN本身的问题~最初怀疑是windows和360防火墙出现了问题,虽然重装过,也关闭了防火墙,但是都没有能够解决这个问题.今天上网继续翻别人的方法,解决的办法可谓是千奇百怪的,有说改系统时间的,有说注册DLL文件的,有说修改注册表的,有说安装老版本的Win

2009-06-26 11:02:00 1478

转载 C语言编写Windows服务程序

Windows 服务被设计用于需要在后台运行的应用程序以及实现没有用户交互的任务。为了学习这种控制台应用程序的基础知识,C(不是C++)是最佳选择。本文将建立并实现一个简单的服务程序,其功能是查询系统中可用物理内存数量,然后将结果写入一个文本文件。最后,你可以用所学知识编写自己的 Windows 服务。    当初我写第一个NT 服务时,我到 MSDN 上找例子。在那里我找到了一篇 Nigel

2009-06-24 15:58:00 728

转载 intel X3100 打开3D特效

根据该帖子和jioyo源的帮助,终于成功打开了桌面效果。现在总结一下具体操作,方便后来人。说明:我的系统是9.04,内核 2.6.30rc2,显卡intel x3100 (在9.04中,x3100显卡很有必要升级为该内核,速度提升很明显)见:http://forum.ubuntu.org.cn/viewtopic.php?f=49&t=1964191. 运行sudo gedi

2009-06-17 21:28:00 753

转载 C++编程中,利用WINDOWS API获得系统状态信息[CPU占用率,硬盘使用情况,内存使用情况]

#include #include #include #include #include #include #include #include #include #include #define SystemBasicInformation       0#define SystemPerformanceInformation 2#define

2009-06-05 19:11:00 2740 2

转载 使用 Strace 和 GDB 调试工具的乐趣

级别: 中级William B. Zimmerly (bill@zimmerly.com), 作家和知识工程师, Author2006 年 6 月 22 日编写 UNIX® 系统程序充满乐趣,并且具有教育意义。使用 UNIX strace 工具和 GDB(GNU 项目调试工具),您可以真正地深入研究系统的功能,并了解组成这些功能的各种各样的程序。同时使用这两种工具,能够在查看 UN

2009-04-09 09:42:00 780

转载 C#中 const 和 readonly 的区别

const 和 readonly 的区别,总是不太清楚,于是查了查资料。  const 的概念就是一个包含不能修改的值的变量。常数表达式是在编译时可被完全计算的表达式。因此不能从一个变量中提取的值来初始化常量。如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以常量是不可以用变量来初始化的。  readonly 允许把一个字段设置成常量,但可以执行一些

2009-04-03 16:02:00 672

空空如也

空空如也

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

TA关注的人

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