自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(80)
  • 资源 (2)
  • 收藏
  • 关注

转载 解决VC2005程序的一个运行错误“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”

解决VC2005程序的一个运行错误“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”有两种情况:1:本机没有安装vc2005,但启动使用vc2005编译的程序是报错2:本机上安装有vc2005,但是调试程序时仍报错,而发布realease版本的程序不会报错。大多数网上讨论的都是第一个问题。第一篇资料:VC.net2005写的程序如何在没有.Net FrameWork的机器上运行 --解决"由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序

2010-06-25 22:55:00 1043

原创 如何在其他电脑上运行VS2005编译的DEBUG版应用程序

如何在其他电脑上运行VS2005编译的DEBUG版应用程序<br />做项目的过程中,遇到这样的问题:在自己的电脑上用VS2005编译好的DEBUG版程序在其它的没有安装VS2005的电脑上没有办法运行,郁闷至极啊。<br />直接拷贝文件后,错误信息如下:"This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix

2010-06-25 22:52:00 2229

转载 CRC16校验算法实现

<br />检验码算法<br /> <br />循环冗余码校验英文名称为Cyclical Redundancy Check,简称CRC。它是利用除法及余数的原理来作错误侦测(Error Detecting)的。实际应用时,发送装置计算出CRC值并随数据一同发送给接收装置,接收装置对收到的数据重新计算CRC并与收到的CRC相比较,若两个CRC值不同,则说明数据通讯出现错误。 <br />根据应用环境与习惯的不同,CRC又可分为以下几种标准: <br />①CRC-12码; <br />②CRC-16码; <b

2010-06-11 23:12:00 1358

转载 调制解调器的AT命令

<br />1.调制解调器的AT命令。  <br />Hayes 兼容调制解调器命令  <br />表 1 调制解调器命令  <br />─────────────────────────────────── <br />──  <br />经常使用的命令  <br />命令 说明  <br />─────────────────────────────────── <br />──  <br />ATDT 用音频拨号  <br />ATDP 用脉冲拨号  <br />ATA 回答电话  <br />ATH

2010-05-31 22:47:00 776

转载 详细的AT指令集

<br />1.通用指令<br />AT+CGMI<br />厂家认证请求,返回模块厂家信息<br />AT+CGMM<br />模式认证请求,返回模块使用频段<br />AT+CGMR<br />修正认证请求,返回软件版本<br />AT+CGSN<br />查看产品IMEI序列号<br />AT+CSCS<br />选择TE特性设置<br />AT+WPCS<br />选择ME特性设置<br />AT+CIMI<br />IMSI认证请求,返回SIM卡的IMSI<br />AT+CCID<br />获得

2010-05-31 22:41:00 736 1

转载 c++中RTTI的观念和使用

下面这篇文章虽然有点老,但对C++的RTTI基本原理讲的比较透彻。该文章摘自UMLCHINA网站,是台湾一个群体写的,我根据大家比较熟悉的方式,修改了一些名词的说法,如衍生(派生)等,让大家可以方便的阅读。C++的 RTTI 观念和用途物泽C++应用小组  自从1993年Bjarne Stroustrup 〔注1 〕提出有关C++ 的RTTI功能之建议﹐以及C++的异常处理(exception h

2010-05-24 23:18:00 211

原创 explicit关键字的作用

++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,既然有"显式"那么必然就有"隐式",那么什么是显示而什么又是隐式的呢?如果c++类的构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象,如下面所示: class MyClass{public:MyClass( int num );}....MyClass

2010-05-24 23:15:00 233

转载 C++标准库简介(转)

C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。 形式的标准头文件【 例外】其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展的功能。在 形式标准的头文件中,与宏相关的名称在全局作用域中定义,其他名称在std命名空间中声明。在C++中还可以使用name.h形式的标准C库头文件名。C++标准库的内容分为10类:C1.

2010-05-23 23:36:00 172

转载 C++指向类成员函数的指针

  首先 函数指针是指向一组同类型的函数的指针;而类成员函数我们也可以相似的认为,它是指向同类中同一组类型的成员函数的指针,当然这里的成员函数更准确的讲应该是指非静态的成员函数。前者是直接指向函数地址的,而后者我们从字面上也可以知道 它肯定是跟类和对象有着关系的。     函数指针实例:typedef int (*p)(int,int);//定义一个接受两个int型且返回int型变量的函数

2010-05-22 23:57:00 268

原创 C++中的虚函数(virtual function)

简 介 缺省情况下,类的成员函数是非虚拟的。当一个成员函数为非虚拟的时候,通过一个类对象(指针或引用)而被调用的该成员函数,是该类对象的静态类型中定义的成员函数。当成员函数是虚拟的时候,通过指针或引用而被调用的该成员函数,是在该类对象的动态类型中被定义的成员函数。但是,正如所发生的,类对象的静态和动态类型是相同的,所以虚拟函数机制只在使用指针和引用时才会如预期般地起作用。第一次引入虚拟

2010-05-22 21:56:00 575

原创 C++ 类访问控制(public/protected/private)

 C++中 public,protected, private 访问标号小结第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。pub

2010-05-22 21:31:00 192

转载 C++的四种cast操作符的区别--类型转换

C++的四种cast操作符的区别--类型转换 C++的四种cast操作符的区别发信站: 水木社区 (Thu Jan 26 21:15:16 2006), 站内声明 by NetMD:并非我的原创,来自互联网,且是两篇帖子的合集,个人觉得这样才比较完备----------------------------------------------------------------------Q:什

2010-05-22 21:23:00 161

原创 打靶问题

问题:一个射击运动员打靶,靶一共有10环,连开10枪打中90环的可能行有多少种? 用递归实现分析:这是一个考察递归的问题,每开一枪都在0环到10环之间,那么这样就需要一个循环来把每一枪的每一种情况考虑进去;然后总分要达到90分,把10枪中每一枪的情况加起来所得的和达到90分的时候就可以了.如果用循环,那么程序就比较罗嗦了,这里使用递归来实现.注意还有一种情况要考虑:当你打了几枪后,如果后面剩下的几

2010-05-20 22:25:00 317

原创 计算机系统可靠性(串并联)计算方法详解

设一个系统由三个相同子系统并联构成,子系统的可靠性为0. 9,平均无故障时间为10000小时,则系统可靠性为(2)和平均无故障时间为(3)。(2) A.0.729 B. 0.9 C. 0.999 D. 0.99(3) A.1. 9999 B. 18000 C. 9000 D. 18333试题分析  C D计算机系统是一个复杂的系统,而且影响其可靠性的因素也非常繁复,很难直接对其进行可靠性分析;但通

2010-05-19 10:37:00 4181 2

转载 实时多线程系统的日志实现(一)

没有任何软件是完全没有错误的,在程序的运行期间,应用程序用户可能会碰到意想不到的结果。要分析并找出导致这些问题的原因,程序员所广泛使用的一种方法就是日志记录。在本文中,您将了解如何使用循环缓冲区通过内存操作(而不是文件操作)高效地进行日志记录。为该缓冲区选择合适的大小,从而确保转储相关的消息,这将在调试时很有帮助。引言“如果有两种方式可以编写出没有错误的程序,那么只有第三种方式是有效的

2010-05-19 10:00:00 1798

转载 实时多线程系统的日志实现(二)

 为了分析软件系统在测试和运行期产生的故障,目前大多数软件系统所广泛使用的一种方法就是日志记录。但系统在保存日志时需要大量的磁盘 I/O操作,同时由于多线程并发互斥访问文件系统可能造成的阻塞,会引起实时软件系统的性能下降,严重时造成整个系统停止响应。本文给出了利用循环缓冲区和单独的日志读写线程实现实时系统的日志功能。 “如果有两种方式可以编写出没有错误的程序,那么只有第三种方式是有

2010-05-19 09:44:00 690

原创 truncate ,drop和不带where子句的delete有什么联系与区别?

相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据 不同点: 1. truncate和 delete只删除数据不删除表的结构(定义)     drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态. 2.delete语句是dml,这个操作

2010-05-18 21:54:00 262

原创 深入浅出Win32多线程设计之MFC的多线程

1、创建和终止线程  在MFC程序中创建一个线程,宜调用AfxBeginThread函数。该函数因参数不同而具有两种重载版本,分别对应工作者线程和用户接口(UI)线程。  工作者线程CWinThread *AfxBeginThread( AFX_THREADPROC pfnThreadProc, //控制函数 LPVOID pParam, //传递给控制函数的参数 

2010-05-16 00:25:00 343

原创 深入浅出Win32多线程设计之MFC的多线程-进程间通信

2.线程间通信  MFC中定义了继承自CSyncObject类的CCriticalSection 、CCEvent、CMutex、CSemaphore类封装和简化了WIN32 API所提供的临界区、事件、互斥和信号量。使用这些同步机制,必须包含"Afxmt.h"头文件。下图给出了类的继承关系:  作为CSyncObject类的继承类,我们仅仅使用基类CSyn

2010-05-16 00:23:00 699

原创 深入浅出Win32多线程设计之MFC的多线程-线程与消息队列

3.线程与消息队列  在WIN32中,每一个线程都对应着一个消息队列。由于一个线程可以产生数个窗口,所以并不是每个窗口都对应着一个消息队列。下列几句话应该作为"定理"被记住:  "定理" 一  所有产生给某个窗口的消息,都先由创建这个窗口的线程处理;  "定理" 二  Windows屏幕上的每一个控件都是一个窗口,有对应的窗口函数。  消息的发送通常有两种方式,一是SendMe

2010-05-16 00:17:00 2142 1

原创 VC 线程间通信的三种方式

VC 线程间通信的三种方式  1.使用全局变量(窗体不适用)     实现线程间通信的方法有很多,常用的主要是通过全局变量、自定义消息和事件对象等来实现的。其中又以对全局变量的使用最为简洁。该方法将全局变量作为线程监视的对象,并通过在主线程对此变量值的改变而实现对子线程的控制。     由于这里的全局变量需要在使用它的线程之外对其值进行改变,这就需要通过volatile关键字对此变量进

2010-05-15 23:56:00 3698

原创 volatile的作用

volatile 修饰符的作用是告诉编译器无需对该变量作任何的优化,即无需将它放到一个寄存器中,并且该值可被外部改变。对于多线程引用的全局变量来说,volatile 是一个非常重要的修饰符.一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的

2010-05-14 21:21:00 360

转载 在VC程序中使用调试语句----(一)断言

为了更好地对程序调试,可以使用如下方法:使用断言、使用跟踪语句、使用异常和返回值。一、断言1、基本概念  断言是一种让错误在运行时候自我暴露的简单有效实用的技术。它们帮助你较早较轻易地发现错误,使得整个调试过程效率更高。  断言是布尔调试语句,用来检测在程序正常运行的时候某一个条件的值是否总为真,它能让错误在运行时刻暴露在程序员面前。使用断言的最大好处在于,能在更解决错误的发源地的

2010-05-12 12:08:00 278

转载 在VC程序中使用调试语句----(二)跟踪语句

二、跟踪语句1、基本概念  跟踪语句(trace statements)可使程序执行,并使程序员可对可变值进行查看。它们提供了一个用于观察的程序,并且独立于一个交互式的调试器,但是最具有特色的是它们常用于对调试器提供的信息进行补充。在VC中,跟踪消息通常输出到输出窗口中的Debug标签,也可以重新输出到一个文件中。跟踪语句的特性如下:.跟踪语句用于报告代码中重要的运行事件。.跟踪语

2010-05-12 12:07:00 273

转载 在VC程序中使用调试语句----(三)异常

三、异常1、基本概念  错误是一种条件,在这种条件下,如果不执行额外的处理,线程就不能正常地执行下去。异常是用于处理错误的。使用异常的一个很明显的好处就是它们通过发出错误信号,可以让程序代码和错误处理代码分开,而且不会让程序忽略错误,你不用不断地检查函数的返回值,因此它们将程序代码简单化。另一个好处是它们不需要严格的编程作风。异常的基本特性:.异常是基于每个进程而提出并处理的。

2010-05-12 12:06:00 249

转载 在VC程序中使用调试语句----(四)返回值

四、返回值  并不是在所以场合下都能使用异常,如在使用Windows API编程或带有COM编程时并不使用异常。在异常不适合的时候,使用返回值是一个好的办法。返回值的基本特性:.返回值可以指示正常和不正常的函数运行,但不能阻止线程的继续运行。.返回值很容易被忽略。.返回值在典型情况下是一个整数,通常映射符合于一个预定义的值。.返回值能高效地传递和接收。因此,返回值最适合

2010-05-12 12:05:00 172

转载 异常处理(一、前言)

Visual C++提供了对C语言、C++语言及MFC的支持,因而其涉及到的异常(exception)处理也包含了这三种类型,即C语言、C++语言和MFC的异常处理。除此之外,微软对C和C++的异常处理进行了扩展,提出了结构化异常处理(SEH)的概念,它支持C和C++(与之相比,MFC异常处理仅支持C++)。  一个典型的异常处理包含如下几个步骤:  (1)程序执行时发生错误;  (2

2010-05-12 11:57:00 174

转载 异常处理(二、C语言的异常处理)

1 异常终止  标准C库提供了abort()和exit()两个函数,它们可以强行终止程序的运行,其声明处于头文件中。这两个函数本身不能检测异常,但在C程序发生异常后经常使用这两个函数进行程序终止。下面的这个例子描述了exit()的行为:CODE:  -------------------------------------------------------------------------

2010-05-12 11:56:00 232

转载 异常处理(三、C++语言异常处理)

1 C++异常处理语法  C++语言的后期改造者们,他们在标准C++语言中专门集成了异常处理的相关语法(与之不同的是,所有的C 标准库异常体系都需要运行库的支持,它不是语言内核支持的)。当然,异常处理被加到程序设计语言中,也是程序语言发展和逐步完善的必然结果。我们看到,C++不是唯一集成异常处理的语言。  C++的异常处理结构为: CODE:  ----------------------

2010-05-12 11:54:00 182

转载 异常处理(四、MFC异常处理)

MFC中异常处理的语法和语义构建在标准C++异常处理语法和语义的基础之上,其解决方案为:  MFC异常处理 = MFC 异常处理类 + 宏1 宏  MFC定义了TRY、CATCH(及AND_CATCH、END_CATCH)和THROW(及THROW_LAST)等用于异常处理的宏,其本质上也是标准C++的try、catch和throw的进一步强化,由这些宏的定义可知: CODE:  --

2010-05-12 11:52:00 279

转载 异常处理(五、结构化异常处理)

结构化异常处理(Structured Exception Handling,简称SEH)是微软针对Windows程序异常处理进行的扩展,在Visual C++中,它同时支持C和C++语言。SEH不宜与标准C++异常处理和MFC异常处理混用,对于C++程序,微软建议使用标准C++的异常处理。  为了支持SEH,Visual C++中定义了四个关键字(由于这些关键字是非标准关键字,其它编译器不一定

2010-05-12 11:49:00 177

转载 异常处理(六、各种异常处理的对比)

下表给出了从以上Visual C++所支持的四种异常处理进行的对比:异常处理        支持语言     是否标准                      复杂度  推荐使用 C异常处理      C语言          准C                              简单     推荐 C++异常处理  C++语言      标准C++                

2010-05-12 11:46:00 307

原创 VC++中使用MFC通过ADO连接数据库

VC++中使用MFC通过ADO连接数据库 一.让我们看看ADO数据库访问技术使用的基本步骤及方法:     1.首先,要用#import语句来引用支持ADO的组件类型库(*.tlb),其中类型库可以作为可执行程序(DLL、EXE等)的一部分被定位在其自身程序中的附属资源里,如:被定位在msado15.dll的附属资源中,只需要直接用 #import引用它既可。可以直接在Stdafx.h

2010-05-11 10:35:00 4596 1

原创 C++中this指针的用法

this指针只能在一个类的成员函数中调用,它表示当前对象的地址。下面是一个例子:     void Date::setMonth( int mn )     {      month = mn; // 这三句是等价的      this->month = mn;      (*this).month = mn;     } 1. this只能在成员函数中使用。全局函数,静态函数都不能使用thi

2010-05-06 12:10:00 250

原创 函数模板和类模板

函数模板和类模板一、函数模板1.1、模板函数含有类型参数template T MyMin(T a,T b){     return a}void main(){     cout     cout//     cout     cout(2,2.123)     cout(2,2.123)}注1:这里的关键词class

2010-05-06 11:13:00 415

原创 __stdcall,__cdecl,__fastcall,thiscall,naked call,__pascal的作用与区别

被这些修饰关键字修饰的函数,其参数都是从右向左通过堆栈传递的。被调用的函数在返回前清理传送参数的内存栈,但不同的是函数名的修饰部分(关于函数名的修饰部分在后面将详细说明)。 1、_stdcall是pascal程序的缺省调用方式,通常用于win32 api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。vc将函数编译后会在函数名前面加上下划线前缀,在函数名后加上/"@/"和参数的字节数。

2010-05-06 10:56:00 300

原创 WaitForSingleObject的用法

WaitForSingleObject的用法DWORD WaitForSingleObject(   HANDLE hHandle,   DWORD dwMilliseconds ); 参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果时间是有信号状态返回WAIT_OBJECT_0,如果时间超过dwMilliseconds值但时间事件

2010-05-06 10:29:00 694

转载 C、C++、API、SDK、IDE、VC++、MSDN、MFC、OWL、VCL、ATL 、BCB

C、C++、API、SDK、IDE、VC++、MSDN、MFC、OWL、VCL、ATL 、BCB 这是一个初进行开发人员都可能遇到过的概念不清的问题,自己当年也同样有过误解,做技术我感觉一定要专,但是, 不代表毫不关心相关的知识,至少概念层次上要知道,所以,这里还是再把这些内容纪录下来,好记性不如烂笔头:      C/C++都 是一种编程语言,程序员用它来创作(我喜欢用创作这

2010-05-06 09:40:00 739 1

原创 C/C++面试题大汇总(五)

重解几道华为经典C语言面试题1、找错 void test1(){    char string[10];    char* str1="0123456789";    strcpy(string, str1);}       这里string数组越界,因为字符串长度为10,还有一个结束符’/0’。所以总共有11个字符长度。string数组大小为10,这里越界了。

2010-05-05 17:03:00 195

原创 C/C++面试题大汇总(四)

一、#include “filename.h”和#include 的区别 #include “filename.h”是指编译器将从当前工作目录上开始查找此文件 #include 是指编译器将从标准库目录中开始查找此文件   二、头文件的作用 加强安全检测 通过头文件可能方便地调用库功能,而不必关心其实现方式   三、* , &修饰符的位置 对于*和&修饰符,为了避免误解,最好将修饰符紧靠变量名  

2010-05-05 16:59:00 168

2010年华为C\C++\MFC(附完整答案)

2010年华为C\C++\MFC(附完整答案) WIN32 平台下, sizeof(short) = 2 , sizeof(int) = 4, sizeof(long) = 4 。 (3 分

2010-05-09

几千个常用的API函数详解

几百个常用windows api函数,对windows 常用的API函数进行详细的介绍

2010-02-05

空空如也

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

TA关注的人

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