自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白永辉的专栏

资料收集类的 都是比较经典的东西

  • 博客(346)
  • 资源 (1)
  • 收藏
  • 关注

原创 2012华为校园招聘软件研发上机测试题及部分解答

以下是收集到的两套题(没有添加答案),上机测试只有应聘软件研发的才会碰到。有的写了点自己的解法,如果大家有好的想法欢迎讨论!大家一起学习嘛!以下是上机考试的一些注意事项:(1)考试时长为2个小时,总共有3个题(去年是2个题,难度要比今年大些),编译环境为VC 6.0(

2011-09-09 13:19:53 8802 3

转载 Windows API GB2312/Unicode/UTF-8转换

转自:http://www.cppblog.com/fdsajhg/archive/2010/09/03/125770.aspxBYTE to Unicode//////////////BYTE dwByte[200];wchar_t dwcharw[200];for(int i=0;i<200;i++){dwcharw[i]=dwByte[i];}(char--for-

2012-04-27 14:31:12 2777

原创 关于全局变量分配内存的误解

以前以为定义一个数组的话,系统会自动为其在heap上分配一块儿新的内存空间。但是在做实验的时候发现原先的理解有误代码如下:for(int nIter=0; nIter<3; nIter++) { char name[16]={0}; printf("a new name point to %p\n"); }输出显示,每次分配的都是同一个内存地址,并没有为其分配新的内存空间深

2012-04-26 19:30:28 1815 1

原创 关于DuplicateHandle() 转换伪句柄成真实句柄值的疑问

参考:http://topic.csdn.net/u/20100806/09/f89294ac-fcf7-4a05-bb00-8480c3793ecb.html

2012-04-26 13:07:51 468

原创 伪句柄 pseudohandle 和句柄的转换

参考:1. http://www.cnblogs.com/Kernone/archive/2009/08/18/1549286.html2. http://blog.sina.com.cn/s/blog_4b226b9201011bu6.html在使用很多函数的时候,我们都需要获得一个对象的句柄,而某些函数,如GetCurrentProcess() / GetCurrentThre

2012-04-26 11:20:42 1639

原创 GetCurrentThread()获取当前线程句柄的陷阱

创建了一个结构体,其中有一个字段是线程句柄HANDLE当新创建的线程执行时,需要去获取结构体中关于该句柄的其他内容;因此,以HANDLE作为查找条件进行获取于是想起GetCurrentThread()方法来获取当前线程的句柄函数原型:HANDLE GetCurrentThread(void);返回值:A pseudohandle for the current

2012-04-26 10:29:00 9183 2

原创 windows.h与winsock2.h的包含顺序引起的问题

使用环境:Windows、C++错误描述:在项目中用到套接字和线程,对应包含头文件 #include 和#include 但是在编译的时候碰到很多错误,而且几乎都是“ 类型/链接重定义 ”、“ 找不到标识符 ”之类的错误,而且几乎都出现在 winsock2.h和ws2def.h 中;例如:error C2011: “sockaddr_in”:“struct”类型重定义

2012-04-25 16:49:21 3706

原创 fatal error C1001: INTERNAL COMPILER ERROR

使用环境:VC6.0 C++出现错误:c:\program files\microsoft visual studio\vc98\include\comutil.h(101) : fatal error C1001: INTERNAL COMPILER ERROR        (compiler file 'msc1.cpp', line 1786)          Pleas

2012-04-24 15:42:28 2705

原创 C++ 关于进程运行时间的获取

使用C运行库中的函数,因此具有平台移植性包含头文件:time.h#include 函数介绍:1. clock()功能:返回处理器调用某个进程或函数所花费的时间函数原型:clock_t clock( void );返回值:如果成功,返回 该进程从开始执行,到调用clock()时刻,CPU的滴答数(clock_t是一个长整形数)如果失败,返回-1;

2012-04-24 14:54:37 2477

原创 Windows C++ 常用的时间类型和函数

参考:http://www.cnblogs.com/doublesnke/archive/2011/08/05/2128558.html方案—:使用C标准库优点:提供跨平台性;缺点:只能精确到秒级; C运行库关于时间的主要函数介绍:所需头文件:#include 1. time()函数功能:获取当前的系统时间函数原型:time_t time(

2012-04-24 11:19:04 4943

转载 _variant_t与其他数据类型的转换

转自:http://kuaixingdong.blog.hexun.com/29627840_d.html我们先看看COM所支持的一些类型的基本类:(微软提供,在comdef.h中定义)在COM中使用的标准类Class如下所示:_bstr_t:对BSTR类型进行打包,并提供有用的操作和方法;_com_error:定义抛出的error对象;_com_ptr_t:封装COM接口

2012-04-24 09:53:52 26045 1

转载 Windows的进程间通信(三)

转自:http://hi.baidu.com/_achillis/blog/item/bdaa0d943d4b130e7bf48080.html5. 命名管道(Named Pipe)和信箱(Mail Slot)前面提到,如果从字面上理解,那么进程间通信也可以通过磁盘文件而实现。但是,把信息写入某个磁盘文件,再由另一个进程从磁盘文件读出,在速度上是很慢的。固然,由于文件缓冲区(Cache

2012-04-23 19:43:53 1042

转载 Windows的进程间通信(二)

转自:http://hi.baidu.com/_achillis/blog/item/9857ebeca154124978f05587.html2. 信号量(Semaphore)学过操作系统原理的读者想必知道“临界区”和“信号量”、以及二者之间的关系。如果没有学过,那也不要紧,不妨把临界区想像成一个凭通行证入内的工作场所,作为对象存在的“信号量”则是发放通行证的“票务处”。但是,通行证的数

2012-04-23 19:42:31 1417

Windows的进程间通信(三)

5. 命名管道(Named Pipe)和信箱(Mail Slot)前面提到,如果从字面上理解,那么进程间通信也可以通过磁盘文件而实现。但是,把信息写入某个磁盘文件,再由另一个进程从磁盘文件读出,在速度上是很慢的。固然,由于文件缓冲区(Cache)的存在,对磁盘文件的写和读未必都经过磁盘,但是那并没有保证。再说,普通的文件操作也没有提供进程间同步的手段。所以通过普通的磁盘文件实现进程间通信是不太

2012-04-23 19:41:06 679

转载 Windows CE 内存管理

转自:http://blog.csdn.net/nbcool/article/details/552406内存管理如果你在写Windows CE 程序中遇到的最重要的问题,那一定是内存问题。一个WinCE 系统可能只有4MB 的RAM,这相对于个人电脑来说是十分少的,因为个人电脑的标准配置已经到了128MB 甚至更多。事实上,运行WinCE 的机器的内存十分缺乏,以至于有时候有必要在写程序

2012-04-23 14:59:19 1023

转载 Windows CE 内存管理

转自:http://blog.csdn.net/nbcool/article/details/552406内存管理如果你在写Windows CE 程序中遇到的最重要的问题,那一定是内存问题。一个WinCE 系统可能只有4MB 的RAM,这相对于个人电脑来说是十分少的,因为个人电脑的标准配置已经到了128MB 甚至更多。事实上,运行WinCE 的机器的内存十分缺乏,以至于有时候有必要在写程序

2012-04-23 14:56:54 125

转载 error LNK2001的解决

转自:http://hi.baidu.com/felixblog/blog/item/0012cc1c93315e8f87d6b698.html产生原因:在创建MFC项目时(或者#include ),不使用MFC AppWizard向导,如果没有设置好项目参数, 就会在编译时产生很多连接错误,如error LNK2001错误典型的错误提示有: libcmtd.lib(crt0.ob

2012-04-23 14:03:12 1018

原创 fstream和CFile的性能比

参考:http://groups.google.com/group/pongba/browse_thread/thread/580de28290644b79在网上找到资料说,fstream的性能比CFile低很多fstream类的成员函数返回值几乎都为void,即不返回值。因为fstream类是类型安全的,它在内部会处理掉可能出现的错误,甚至对每一字节都会有检查,所以效率很低感觉挺有道

2012-04-23 13:25:45 1870

转载 VC6.0中注释快捷键的设置

转自:http://hi.baidu.com/zhujianzhai/blog/item/40a92e94a0c822007af48008.html有如下两种方法:方法一:在工具栏上添加注释按钮:工具栏上右键 -->自定义 -->附加项和宏文件tab页-->在SAMPLE前面打上钩 -->回到" 命令 "tab页 -->类型选择Macros -->右边找到CommentOut,并将其拖

2012-04-23 10:22:43 1457

转载 VC6.0中注释快捷键的设置VC6.0中注释快捷键的设置

转自:http://hi.baidu.com/zhujianzhai/blog/item/40a92e94a0c822007af48008.html有如下两种方法:方法一:在工具栏上添加注释按钮:工具栏上右键 -->自定义 -->附加项和宏文件tab页-->在SAMPLE前面打上钩 -->回" 命令 "tab页 -->类型选择Macros -->右边找到CommentOut并拖曳到工具

2012-04-23 10:14:42 197

原创 C++文件操作之fstream

参考:http://www.cppblog.com/lmlf001/archive/2006/04/18/5815.html(发现其中有些内容有问题...)在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:1、插入器(向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的

2012-04-23 09:51:20 1230

转载 Windows环境进程间通信(三) 内存映射文件

转自:http://www.zxbc.cn/html/20090609/71620_2.html内存映射文件是通过两个或多个进程映射同一个文件映射对象的视图来实现的,这意味着它们将共享物理存储器的同一个页面。因此,当一个进程将数据写入一个共享文件映射对象的视图时,其他进程可以立即看到它们视图中的数据变更情况。如果多个进程共享单个文件映射对象,那么所有进程必须使用相同的名字来表示该文件映射对

2012-04-23 09:01:24 3673

转载 Windows环境进程间通信(一):共享文件方式

转自:http://www.zxbc.cn/html/20090609/71620.html共享文件方式 (1)数据发送 数据发送进程为通过Cfile类创建一个共享文件,然后调用write()方法想文件中写入数据,具体代码如下: #include #include #include void main(){ CString filename = _T("C:\\te

2012-04-23 08:41:35 1821

转载 Windows环境进程间通信(二):共享内存方式

转自:http://www.zxbc.cn/html/20090609/71620.html共享内存方式是通过内存来传递数据,必须在内存中申请一定的空间。可以调用GlobalAlloc()或者VirtualAllocEx()来实现内存空间分配,使用内存读写函数;ReadProcessMemory()和WriteProcessMemory()来读写进程的内存。要使接收程序获得发送程序的内

2012-04-23 08:39:40 3082

原创 关于recv()的一种特殊情况处理(多条消息作为了一条接收)

套接字接收函数如下:recv(int fdsock, void * buf, size_t bufsize, int flags);该函数应该是对方发送一条,接收方接收一条;而且接收方不一定要接收bufsize个字节后才返回;但是在特殊情况下,对方连续发送信息时(用for()循环发送N条信息)时,发现一个状况:第1条消息接收正确,而之后的消息作为一次接收处理了...很是奇怪

2012-04-18 23:23:23 1569

原创 返回局部变量的引用可能引起的错误

使用环境:ubuntu 11.10  C++自己创建了一个套接字的类MySock当调用Accept()方法时,返回一个MySock &类型的值;MySock & Accept();出现错误:MySock connSock=lstnSock.Accept();当调用connSock.Recv();方法进行接收时,接收到的字节数为-1(即接收错误);提示错误为:EB

2012-04-18 23:19:01 980

原创 重载赋值操作operator=()

参考:Effective C++以及http://www.cnblogs.com/dahai/archive/2011/04/11/2012519.htmlC++默认的赋值操作是按成员赋值(包括指针,嵌套的类成员等)如果类成员都为值类型时,工作良好;但特殊情况下,这种操作往往会有问题。下面例子是类成员包含指针成员时,使用默认的赋值操作时,导致了内存被重复释放的问题代码如下:

2012-04-18 19:42:30 1046

转载 Program received signal SIGPIPE, Broken pipe

转自:http://www.diybl.com/course/3_program/c++/cppjs/20090831/173152.html我写了一个服务器程序, 在Windows下在cygwin环境编译后执行, 然后用C#写了多线程客户端进行压力测试. 程序一直运行正常. 但当在Linux下测试时, 总是莫名退出. 最后跟踪到是write调用导致退出. 用gdb执行程序, 退出时提示"Br

2012-04-17 13:37:13 7501

原创 LNK2005错误

参考:http://www.cnblogs.com/cumtb3S/archive/2011/03/12/1982383.htmlhttp://support.microsoft.com/kb/148652编程中经常能遇到LNK2005错误——重复定义错误,其实LNK2005错误并不是一个很难解决的错误。弄清楚它形成的原因,就可以轻松解决它了。 造成LNK2005错误主要有以下几种

2012-04-16 13:33:32 540

转载 c#线程池详解

转自:http://blog.sina.com.cn/s/blog_494305f30100ryw7.html在这里你可以学到Microsoft研究CLR实现线程池的原理机制,从而更灵活的处理CLR在实际代码应中线程池的问题,下面我们来看看吧。CLR教程之线程池的产生当 CLR 初始化时,其线程池中不含有线程。当应用程序要创建线程来执行任务时,该应用程序应请求线程池线程来执行任务。线程

2012-04-16 09:06:39 3628

原创 VC中使用ADO操作数据库的方法(比较详细)

参考:http://blog.csdn.net/augusdi/article/details/7005597,做了部分补充和删除准备工作:(1)、引入ADO类#import "c:\program files\common files\system\ado\msado15.dll"  no_namespace rename ("EOF", "adoEOF")(2)、初始化COM

2012-04-14 08:48:05 3091

转载 VC中使用ADO操作数据库的方法

转自:http://blog.csdn.net/augusdi/article/details/7005597讲解详细而且全面准备工作(1)、引入ADO类#import "c:\program files\common files\system\ado\msado15.dll"  no_namespace rename ("EOF", "adoEOF")(2)、初始化COM

2012-04-14 08:12:21 57

转载 ADO数据库编程入门(下)

10、邦定数据  定义一个绑定类,将其成员变量绑定到一个指定的记录集,以方便于访问记录集的字段值。  (1). 从CADORecordBinding派生出一个类:class CCustomRs : public CADORecordBinding{BEGIN_ADO_BINDING(CCustomRs)ADO_VARIABLE_LENGTH_

2012-04-13 22:32:05 1272

转载 ADO数据库编程入门(上)

转自:http://www.cppblog.com/ivenher/articles/2293.htmlADO 是目前在Windows环境中比较流行的客户端数据库编程技术。ADO是建立在OLE DB底层技术之上的高级编程接口,因而它兼具有强大的数据处理功能(处理各种不同类型的数据源、分布式的数据处理等等)和极其简单、易用的编程接口,因而得到了广泛的应用。而且按微软公司的意图,OLE D

2012-04-13 22:30:51 1068

原创 编译错误:包含了头文件,但提示类未声明(头文件相互包含引起)

使用环境:Ubuntu 11.10 G++错误出现:在编译一个相互包含头文件的代码(A.h中包含B.h,B.h中包含A.h)但是编译出现错误,提示:A.h文件中,B类未声明;B.h文件中,A类未声明错误分析:在头文件中已经用#include 刚开始还以为是名字有错误,一直在检查后来确定没有输入错误时,确定应该是编码的问题之前在头文件相互包含的时候好像也碰到过类似

2012-04-12 11:53:42 5968 4

转载 ADO接口之_RecordsetPtr

转自:http://hi.baidu.com/%CE%D2%B6%CF%C1%CB%CB%BC%C4%EE/blog/item/e057c526c6af6c29c995596e.html_RecordsetPtr智能指针,它是专门为通过记录集操作数据库而设立的指针,通过该接口可以对数据库的表内的记录、字段等进行各种操作。要搞清楚:数据库和ADO的记录集是两个不同的概念,是存在于不同物理位置

2012-04-11 16:45:34 6448

原创 COM组件初始化时的错误

使用环境:Windows XP、VC++出现错误:在用ADO组件进行数据库操作时,由于是COM组件,需要初始化COM组件。使用函数:AfxOleInit()在编译时出现如下错误:error C2065: 'AfxOleInit' : undeclared identifier错误分析:看到很多使用AfxOleInit()的场合都是MFC情景下,因此需要包含一些afx

2012-04-11 16:00:18 4125

转载 ADO接口简介

参考:1. 百度文库:http://wenku.baidu.com/view/8e2e99ecf8c75fbfc77db230.html2. CSDN:http://blog.csdn.net/augusdi/article/details/7005597接口概述:ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口

2012-04-11 15:21:47 4008 1

转载 ADO接口之_ConnectionPtr

转自百度文库ADO中最重要的对象有三个:Connection、Recordset和Command,分别表示连接对象、记录集对象和命令对象。三个对象对应的智能指针分别是:_ConnectionPtr、_RecordsetPtr、_CommandPtr。ADO使用_ConnectionPtr这个指针来操纵Connection对象,类似地,后面用到的_CommandPtr和_Recordse

2012-04-11 12:55:04 30773 1

原创 对COM组件返回类型HRESULT值的判断(宏SUCCEEDED/FAILED)

1. SUCCEEDED原型如下:BOOL SUCCEEDED( HRESULT hr);对应的定义(具体的实现):#define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0)2. FAILED原型如下:BOOL FAILED( HRESULT hr);对应的定义(具体的实现):#define FAILED(hr)

2012-04-11 12:44:44 209

高质量C 编程指南

高质量C++/C 编程指南 帮助提高编程质量

2011-04-07

空空如也

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

TA关注的人

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