自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 笔试题目之字符串中将大写字母移动至末尾

某软件公司笔试题目:编程实现一函数,将字符串中的所有大写字母按顺序移动至字符串的末尾。实现思想:根据选择排序的思想,对字符串从末尾向前移动,如果为大写继续移动,如果为小写,记录下该位置,然后从前面的字符中找到第一个大写,进行交换。下面是代码:void movestr(char* s){bool flag=false;char c;int len = strlen(s);

2012-01-02 20:08:46 1703 2

原创 华三面试小结

今天是周四,前几天华三hr邮件通知今天上午去面试。昨晚订好了闹钟,早晨起来洗刷完毕就带了材料去了,一直等公交也不来,还好离得近,我也提前了几十分钟起床,就到路边买点早饭吃,一边吃一边等着,过了二十多分钟终于来了,没几站地就到了。来到前台后告诉他我是面试的,然后就在大厅等着,中间来过一人说面试的跟我走,几个一同等待的人来到一个食堂发了一份试卷做题,我看了看是软件测试的,问你们这是招测试的吗,汗,找错

2011-12-27 21:18:40 17220 2

原创 windows下c++编写多线程

一.进程首先来看进程,它是一个正在运行的程序的实例,是一个程序在其自身的地址空间的一次执行活动。进程是资源申请、调度、和独立运行的基本单位。进程有两部分组成:1操作系统用来管理进程的内核对象,内核对象是系统用来存放关于进程的统计信息的地方,它是操作系统内部分配的一块内存块,该内存块是一种数据结构,其成员负责维护该对象的各种信息。2地址空间,它包含所有可执行模块、dll模块的代码和数据,

2011-12-06 11:41:26 34627 2

原创 动态链接库dll详解

一、引言在发行的应用程序中,经常包含动态链接库dll,它包含执行一定功能的函数供其他程序调用。Windows API函数都包含在DLL中,其中有三个最重要的DLL:Kernel32.dll 包含用于管理内存、进程、线程的函数。User32.dll 包含哪些用于执行用户界面的函数GDI32.dll 包含哪些用于画图和显示文本的函数使用动态链接库的好处:1.     可以跨语言

2011-12-01 21:52:17 9332 1

原创 c/c++经典书籍

虽然是计算机专业毕业的,发现水平确实很菜,工作后也没读过书,太颓废了,于是下决心去学习,为了生活,也为了兴趣。于是将感觉挺好的书列出来,以后会慢慢更新。1.C语言类C Primer plus,挺厚的一本,据说挺基础,没读过C和指针   讲的很好,适合学过C语言的进行提高和加深了解C专家编程  最近想读C缺陷和陷阱C语言深度剖析  C语言相关难点和易错的知识点的总结,像是

2011-11-28 19:34:13 2498

原创 如何在vc程序中内嵌文件

如何在vc程序中内部包含一个文件,不想被外部看到?可以将该文件内嵌作为自定义资源。使用内嵌文件作为自定义资源有很多应用,比如有些程序的语言包,皮肤,dll文件,图像或音频视频文件,不想放在程序外面,另外一些病毒木马可能嵌入某个程序中。       添加自定义资源的方法很简单,打开资源视图,右击添加资源->自定义,输入自定义的类型名,如我想内嵌xml文件,就输入xml,然后在xml树节点右击添加

2011-10-26 20:10:17 1543

原创 WinInet编程详解

一般而言,开发Internet服务客户端程序的目的是通过Internet协议(HTTP,FTP)获取网络数据源的信息,微软提供了专门的Win32 Internet扩展接口,也就是WinInet。1使用Win API函数开发客户端程序一般流程是,首先通过InternetOp

2011-09-16 16:56:16 10381 3

原创 字符串常量的神奇使用

最近在阅读《c和指针》这本书,对c语言的分析很不错,这是继《C++ primer》之后感觉又一部比较适合我阅读的书了,值得推荐,其中有些比较有趣的用法拿出来和大家分享。首先我们回忆关于字符数组和字符串常量的区别,比较下面两个语句:char p[] = “hello world

2011-09-06 16:26:49 1146

原创 vs打包应用程序的方法

在完成项目开发生成应用程序后,由于相关的文件较多,可能还要分不同的子文件夹,所以一般将程序打包成一个安装文件,当然还可以设置修改注册表等,下面我们看一下在vs下如何打包c++应用程序。首先新建一个安装项目,选择其他项目类型->安装和部署,如图所示,建立好项目之

2011-08-12 20:34:46 2039

原创 写代码尽量要规范

在学校时,老师经常教导我们软件开发要按照一定的阶段,代码一定要写规范。大家都记得,但没经历过,并没放在心上,直到最近我才意识到代码规范的重要性。公司有同事要离职了,我接手他的工作,首先就要先熟悉她的代码结构和实现等的,拿过来一看才知道这真不是件容易的事。洋洋洒洒上万行代码,有些多

2011-07-16 11:07:34 1410 3

翻译 CxImage的使用

原文地址:http://www.codeproject.com/KB/graphics/cximage.aspx1.简介及许可CxImage 是一个免费的C++类,可以简单而快速的加载、保存、显示,转换BMP, JPEG, GIF, PNG, TIFF, MN

2011-07-04 18:50:50 21122

原创 c++异常处理的实现

 我们编写的程序一般要满足正确性、健壮性、易读性和可复用性、可扩展性。健壮性指程序既能处理正确流程的情况,也能处理非法的错误的异常情况,提示用户出现了什么问题,一般由异常处理实现。在编写小型的程序时,可以很容易发现程序的错误,异常提示显得不那么重要,但在大型的由多人共同完成的程序中往往难以发现出现了什么问题,因此异常提示和处理显得尤为重要。下面我们了解c++的异常处理的实现。异常机制提供程

2011-06-26 23:04:00 1467 2

原创 vs2008下wcecompat库的编译

<br /><br />    wcecompat是windows CE下的C运行库兼容库,对系统自带的C库做了很多补充,一般我们先再要使用的平台上编译源码,然后在工程中引用头文件和静态库。<br />编译它主要有两种方法,一是使用vs自带的命令行工具,缺点是有错误不容易改,另一个就是建个静态库工程,有的源码自带工程,使用vs界面编译。两种方法都要小小的配置一下,更郁闷的是源码编译还有错误,下面听我慢慢道来。<br />     首先看在工程下编译,首先设置好编译平台,我的是windowsmobile

2011-06-01 20:19:00 2368

原创 windows Mobile 6 音频播放探索总结

<br /><br />最近研究在windows Mobile 6下的音频(主要是wav,mp3,wma,ogg等)使用,前提是安装了windowsMobile 6的SDK和模拟器,然后熟悉vs2008下进行wince下的开发。首先查找wince自带的系统库能不能处理音频,发现了低层的波形函数waveform函数,肯定是播放未压缩的音频数据的,可以播放wav格式的音频(具体没试验),可以参考SDK自带的例子。然后我们想到了DirectX,播放音频视频时使用DirectShow,在基本的SDK中就可使用。

2011-06-01 20:15:00 845

原创 c++语言之覆盖与隐藏

<br />我们知道派生类可以继承基类的成员变量和成员函数,如果在派生类定义同名的函数,即使参数不同,也会隐藏基类的继承来的函数。通过基类的引用或指针,可以实现函数的动态绑定,当然函数必须指定为虚函数。<br />下面摘自《c++高质量编程指南》对覆盖,隐藏的解释。<br />覆盖是指派生类函数覆盖基类函数,特征是:<br />(1) 不同的范围(分别位于派生类与基类);<br />(2) 函数名字相同;<br />(3) 参数相同;<br />(4) 基类函数必须有virtual关键字。<br />这里“

2011-05-29 18:39:00 921 2

原创 c/c++笔试题选(一)

<br />1.  What does the following program print?<br />#include <iostream><br />Using namespace std;<br />int main()<br />{<br />       int x=2,y,z;<br />x*=(y=z=5);   cout<<x<<endl ;<br />       z=3 ;<br />       x= =(y=z) ; cout<<x<<endl ;<br />       x=(

2011-05-29 16:12:00 779

转载 Win32和mfc下弹出console窗口的方法

<br />在C**App InitInstance()中 调出console窗口<br />BOOL CWinApp::InitInstance()<br />    AllocConsole();<br />    SetConsoleTitle("debug console");<br />    freopen("CONOUT$","w",stdout);<br />重载ExitInstance()函数,释放Console。<br />    FreeConsole();<br />可以使用prin

2011-05-20 20:17:00 3398

转载 c++设计模式之单例模式(转)

<br />单实例设可能是使用最广泛的设计模式。其思想意图是保证一个类只有一个实例,并且提供类对象的全程访问。单实例对象应用的范围很广:如GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。本文将讨论如何用C++实现单实例模式,并解释如何优化单线程应用的设计。<br /><br />设计方案<br /><br />    使用全程对象能够保证方便地访问实例,但是不能保证只声明一个对象-也就是说除了一个全程实例外,仍然能创建相同类的本地实例。单

2011-05-20 20:14:00 913

原创 动态改变按钮上的光标

动态改变按钮上的光标1.在资源视图中添加新的Cursor,在OnInitDialog()中加载光标 m_hCursor = AfxGetApp()->LoadCursor(IDC_CURSOR1);2. 添加WM_SETCURSOR消息,重写函数如下BOOL CtestDlgDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message){ // TODO: 在此添加消息处理程序代码和/或调用默认值 CString s; ::

2011-05-06 17:51:00 917

原创 c++primer学习笔记(三)

<br />1.       派生类中虚函数的声明必须和基类中的定义方式完全一致,但有一个例外,返回对基类的引用(或指针)的虚函数,派生类的虚函数可以返回基类虚函数返回类型的派生类的引用或指针。<br />虚函数也可以有默认实参,通常,如果有用在给定调用中的默认实参,该值将在编译时确定。如果一个调用省略了具有默认值的实参,则所用的值由调用该函数的类型定义,与对象的动态类型无关。通过基类的引用或指针调用虚函数时,默认实参为在基类虚函数声明中指定的值,如果通过派生类的引用或指针调用虚函数时,默认实参为在派生类的

2011-04-27 15:33:00 731

原创 c++primer学习笔记(二)

<br />1.       从const成员函数返回*this <br />在普通的非const成员函数中,this的类型是一个指向类类型的const指针,可以改变this所指向的值,但不能改变this所保存的地址。在const成员函数中,this的类型是一个指向const类类型的const指针,既不能改变this所指向的对象,也不能改变this所保存的地址。<br />基于const可以重载成员函数。<br />2.       可变数据成员使用mutable声明,可以在任何成员函数中改变(包括cons

2011-04-26 14:44:00 659

转载 vc程序计时器(转)

<br />1 使用time_t time( time_t * timer )    精确到秒<br />  计算时间差使用double difftime( time_t timer1, time_t timer0 ) <br /> <br />2 使用clock_t clock() 得到的是CPU时间    精确到1/CLOCKS_PER_SEC秒<br />3 使用DWORD GetTickCount() 得到的是系统运行的时间精确到毫秒<br />4 如果使用MFC的CTime类,可以用CTime::

2011-04-20 16:57:00 3332

转载 在Windows下编译OpenSSL(VS2005) 转

<br />如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)<br />1、安装ActivePerl//初始化的时候,需要用到perl解释器<br />2、使用VS2005下的Visual Studio 2005 Command Prompt进入控制台模式(这个模式会自动设置各种环境变量)<br />3、解压缩openssl的包,进入openssl的目录<br />4、perl configure VC-WIN32<br />尽量在这个目录下执行该命令,否则找不到Config

2011-04-20 16:50:00 687

原创 在vc中将程序图标最小化到托盘中

<br />1.在**.h中定义消息名字,添加消息函数定义<br />#define WM_ICONNOTIFY  WM_USER + 500 //图标响应消息(lParam)<br />afx_msg LRESULT OnNotifyIcon(WPARAM wParam, LPARAM lParam);<br />2.在**.cpp添加消息映射<br />    ON_MESSAGE(WM_ICONNOTIFY,CtestDlgDlg::OnNotifyIcon)<br />3.编写最小化到托盘的函数<b

2011-04-08 09:34:00 709

原创 c++primer学习笔记

<br />1.       通过增加后缀L,U或UL,能强制将整型字面值转换为long,unsigned,unsigned long.<br />多字节字符串转宽字节字符串前加L,如”hello”->L”hello”<br />2.多行字符串的连接。<br />cout<<”a multiline”<br />“string”<br /><<endl;<br />多行字面值的连接<br />std::cou/<br />t<<”print”<<endl;<br />3.const可以替代define,避免

2011-04-02 16:35:00 768

原创 树形控件CTreeCtrl的使用

<br />树形控件在界面编程中应用十分普遍,如在资源管理器中和树形结构显示书的目录等,我们一步步研究树形控件的使用。<br />在对话框界面上首先拖动创建一个树,一般我们改变三个属性:<br />Has Buttons显示带有”+”或”-“的小方框,表示某项能否被展开或已展开,默认为选中,我们改为选中。<br />Has Lines在父项与子项之间连线以清楚地显示结构,默认为选中,改为选中。<br />Lines at root:在根部划线,默认为选中,改为选中。<br />其余根据需要,可以修改,如Al

2011-03-28 16:25:00 5513 2

原创 vc++中如何产生任意区间的随机数

<br />承接《vc++中如何产生随机数》,我们可以产生0~NUM之间的随机数,那么接下来考虑,如何产生负数随机数呢,如何产生任意一个区间的随机数呢?<br /> <br />#include<time.h><br />void GetRangeRandom(int min, int max, int n)<br />{<br />    //产生区间[min,max)的n个随机数<br />    srand(time(NULL));<br />    for (int i=0; i<n; i++)<b

2011-03-15 11:40:00 4438

原创 vc调用cmd命令总结(续)

<br />承接前面博客“vc调用cmd命令总结”,列出以下常用windows命令,从网上找的,仅供查找。<br />附:一些windows的系统命令:<br />winver---------检查Windows版本<br />wmimgmt.msc----打开windows管理体系结构(WMI) <br />wupdmgr--------windows更新程序<br />wscript--------windows脚本宿主设置<br />write----------写字板<br />winmsd----

2011-03-14 19:53:00 2347

原创 技术博客该写些什么

<br />      我早在读研期间,就开通了程序员都知道的csdn博客,当时也是赶时髦,纯粹没考虑上面都写神马,单纯的以为就写一些代码,最好原创的代码,想起来就写点,以至于两年也没写几篇。后来,我毕业了,真正加入了码农的行列,感觉工作中碰到的问题,一些程序思想应该记下来,于是想到了csdn博客,本来想再申请一个,认为以前的是没考虑就申请了,现在想重新做一个完美的,从一开始就要完美。申请前看了下以前写的东西,我不知怎的竟然改变了主意,还是用以前的帐号吧,也许这更能反映一个人的成长历程,现在看来,以前的用户

2011-03-13 13:42:00 1786 1

转载 (转)vc++获得系统时间的几种方案

<br />//方案— 优点:仅使用C标准库;缺点:只能精确到秒级<br /> <br />#include <time.h> <br /> <br />#include <stdio.h> <br /> <br />int main( void ) <br /> <br />{ <br /> <br />    time_t t = time( 0 ); <br /> <br />    char tmp[64]; <br /> <br />    strftime( tmp, sizeof(tmp),

2011-03-10 16:30:00 591

转载 (转)在CRichEditCtrl中如何获取中文字符的位置

<br />牢骚牢骚rich edit,他给我找了不小的麻烦,等到中文能选半个字的时候我才知道原来那个东西还有中英文之分的,然而麻烦还不就只是这一点。<br /> <br />在2000下或更高版本的OS上,rich edit能接收WM_LBUTTONUP消息,然而98下,只接收一次,第二次就不理你了,至少MFC编译出来的代码是这样,没有在SDK上作过试验。<br /> <br />richedit.SetWindowText("a");<br /> <br />richedit.SetSel(0,-1);

2011-03-10 16:27:00 2956

转载 Richedit使用大全

<br />很不错的源代码<br />http://www.pudn.com/search_db.asp?keyword=MyRichEdit&x=36&y=16<br />richedit 常见使用问题<br />一.常见问题<br />a.可以编译,不能执行的<br /><br />在需要在相应的对话框中加上InitInstance(void)函数中添加<br />AfxInitRichEdit();<br />b.升级默认的Riched版本(默认的有一些bug),如<br />可在InitInstan

2011-03-04 16:09:00 2975

原创 关于如何将char*转换成long型整数

<br />在计算机中,long型数占4个字节,每个字节中存储相应的二进制数据,我们做以下测试,就可看出高低位顺序及每个字节存储的内容,<br />  char a[5];<br />  long b = 1;<br />  memcpy(a, (char *)&b, 4 );<br />我在winxp下vs08做实验,得到long的高低位顺序为a[3],a[2],a[1],a[0],之后我们对于题目的问题就非常容易了。<br />例如将char* str中的字节转化成long i;可用如下代码:memcp

2011-02-28 15:20:00 10282

原创 java调用控制台命令出现阻塞的解决方法

<br />执行一个有标准输出的DOS可执行程序 <br />在windows平台上,运行被调用程序的DOS窗口在程序执行完毕后往往并不会自动关闭,从而导致Java应用程序阻塞在waitfor( )。导致该现象的一个可能的原因是,该可执行程序的标准输出比较多,而运行窗口的标准输出缓冲区不够大。解决的办法是,利用Java提供的Process 类提供的方法让Java虚拟机截获被调用程序的DOS运行窗口的标准输出,在waitfor()命令之前读出窗口的标准输出缓冲区中的内容。一段典型的程序如下: <br />St

2011-01-18 10:51:00 3523

原创 在apache http server中配置虚拟机和虚拟路径的方法

<br />1.配置虚拟机<br />打开httpd.conf文件,在DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"后面添加如下:<br /><VirtualHost *:80><br />DocumentRoot "D:/mydir"<br />ServerName test<br />DirectoryIndex phpinfo.php index.php index.html index.htm <

2010-12-30 16:13:00 2897

原创 VC++6.0中OpenGL应用程序开发

1.             Win32控制台方式建立Win32 控制台程序,在头文件中加入#include  #include  #include#include     #include2.             MFC方式(1)采用VC AppWizard向导创建空的MFC(EXE)工程框架,整个过程总共6步,值得指出的是一般情况下在向导的第1步选择创建工程的模式都为单文档,以下的步骤中假设创建的工程名为First.(2)       设置所创建工程的Link属性。打开工

2010-12-09 22:24:00 7253 3

原创 测试jsp+servlet+javaBean

<br /><br />1. 测试jsp<br />1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录;<br />2.在webapps目录下新建一个目录,起名叫myapp;<br />3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;<br />    4.WEB-INF下新建一个文件web.xml,内容如下:<br /><?xmlversion="1.0" encoding="ISO-88

2010-12-05 10:54:00 1242 1

原创 JDK+tomcat+mysql安装与配置

<br /><br />1.安装JDK<br />下载jdk,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html<br />配置环境变量:右击我的电脑->属性->高级->环境变量->系统变量,添加以下环境变量:<br />JAVA_HOME=C:/Program Files/Java/jdk1.6.0_22<br />classpath=.;%JAVA_HOME%/lib/dt.jar; %JAVA_HOME%/

2010-12-05 10:47:00 1009

原创 使用skinMagic库实现界面换肤

<br />·                     将SkinMagicTrial.lib、SkinMagicTrial.dll和SkinMagicLib.h拷贝到项目根目录下,并在工程中添加;<br />·                     把Skins文件夹放在项目根目录下;<br />·                     建立一个MFC单文档项目;<br />·                     将 #include "SkinMagicLib.h" 拷贝到 StdAfx.h文件

2010-11-22 19:31:00 815

原创 对话框响应键盘消息的方法

<br />键盘消息输送给获得焦点的窗口,在对话框中,键盘消息被基本对话框消息,添加WM_KEYDOWN消息不会响应,如果要处理键盘消息,需要重载PreTranslateMessage函数,代码示例如下:<br />过滤了PreTranslateMessage(MSG* pMsg) <br /> { <br />     if( pMsg->message == WM_KEYDOWN )  <br />    {  <br />     

2010-10-23 11:28:00 1178

空空如也

空空如也

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

TA关注的人

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