HtSoft
码龄22年
关注
提问 私信
  • 博客:43,146
    社区:2,814
    45,960
    总访问量
  • 7
    原创
  • 469,036
    排名
  • 7
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:西藏
  • 加入CSDN时间: 2003-04-30
博客简介:

HtSoft

查看详细资料
个人成就
  • 获得2次点赞
  • 内容获得0次评论
  • 获得15次收藏
创作历程
  • 1篇
    2020年
  • 25篇
    2005年
成就勋章
TA的专栏
  • 网络收集
    7篇
  • 网络收集
    19篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

352人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

为你的程序添加系统级热键

很多情况下,我们需要给程序添加一个系统级的热键。就像常用的QQ在启动后,任何时间只要按下Ctrl + Alt + z就能将QQ的主界面调出。当然,我们还可以干其他很多事情!:)我们在为程序加上热键后,每当按下你所设定的快捷键,就会给主窗口发出一个WM_HOTKEY的消息,但很可惜,Class Wizartd并没有它。因此,我们需要按照以下步骤进行处理:假设Project的名字是Temp,那么操作如
原创
发布博客 2005.12.01 ·
1187 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

 下表给出了从以上Visual C++所支持的四种异常处理进行的对比:异常处理        支持语言     是否标准                      复杂度  推荐使用 C异常处理      C语言          准C                             单        推荐 C++异常处理  C++语言      标准C++                
原创
发布博客 2005.11.17 ·
1185 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

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

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

MFC中异常处理的语法和语义构建在标准C++异常处理语法和语义的基础之上,其解决方案为:  MFC异常处理 = MFC 异常处理类 + 宏1 宏  MFC定义了TRY、CATCH(及AND_CATCH、END_CATCH)和THROW(及THROW_LAST)等用于异常处理的宏,其本质上也是标准C++的try、catch和throw的进一步强化,由这些宏的定义可知: CODE:#ifndef
原创
发布博客 2020.06.03 ·
4685 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

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

1 C++异常处理语法  C++语言的后期改造者们,他们在标准C++语言中专门集成了异常处理的相关语法(与之不同的是,所有的C 标准库异常体系都需要运行库的支持,它不是语言内核支持的)。当然,异常处理被加到程序设计语言中,也是程序语言发展和逐步完善的必然结果。我们看到,C++不是唯一集成异常处理的语言。  C++的异常处理结构为: CODE:  try{//可能引发异常的代码}catch(type
原创
发布博客 2005.11.17 ·
3029 阅读 ·
0 点赞 ·
0 评论 ·
7 收藏

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

1 异常终止  标准C库提供了abort()和exit()两个函数,它们可以强行终止程序的运行,其声明处于头文件中。这两个函数本身不能检测异常,但在C程序发生异常后经常使用这两个函数进行程序终止。下面的这个例子描述了exit()的行为:CODE:  #include #include int main(void){ exit(EXIT_SUCCESS); printf("程序不会执行到这里/n")
原创
发布博客 2005.11.17 ·
3519 阅读 ·
1 点赞 ·
0 评论 ·
10 收藏

异常处理(一、前言)

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

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

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

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

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

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

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

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

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

内存空间与分配

1、内存分配错误  动态内存分配错误有两种基本类型:内存错误和内存泄漏。(1)内存错误  当一个指针或者该指针所指向的内存单元成为无效单元,或者内存中分配的数据结构被破坏时,就会造成内存错误。指针未被初始化,指针被初始化为一个无效地址,指针被不小心错误地修改,在与指针相关联的内存区域被释放后使用该指针(这种指针被称为虚悬(dangling)指针),这些都会使指针变为无效指针。当通过一个错误指针或者
转载
发布博客 2005.11.17 ·
1427 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

wParam和lParam

这两个是Win16系统遗留下来的产物,在Win16API中WndProc有两个参数:一个是WORD类型的16位整型变量;另一个是LONG类型的32位整型变量。因此根据匈牙利命名法,16位的变量就被命名为wParam, 而32位的变量就被命名为lParam。到了Win32API中,原来的16位变量也被扩展为32位,因此wParam和lParam的大小完全相同。在Win32API的早期,为了保证和Wi
转载
发布博客 2005.11.17 ·
1254 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

指针的爱情

1 指向变量的指针变量:  出身: int * point;  遭遇: 两人都另有新欢  心声: 你可以变心,我也可以爱别人,很公平。   2 指向常量的指针变量:  出身: const int * point;  遭遇: 抛弃对方  心声: 说过多少回了,我们之间已经结束了,你别再缠着我了,告诉你,我已经有了新的女朋友了3 指向变量的指针常量:  出身: int * const point;  
转载
发布博客 2005.11.17 ·
756 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数组的定义

下面那些数组的定义是不合法的?为什么?CODE:     int get_size();    int buf_size = 1024;    (a) int ia[buf_size];     (b) int ia[get_size()];     (c) int ia[4*7-14];     (d) int ia[2*7-14];     (e) char st[11]="fundament
转载
发布博客 2005.11.17 ·
1068 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

DLL中调用约定和名称修饰(三)

DLL中调用约定和名称修饰(三)2、C++编译时函数(非类成员函数)名称修饰当函数使用__cdecl调用约定时,编译器进行以下工作:1.以?标识函数名的开始,后跟函数名;2.函数名后面以@@YA标识开始,后跟返回值和参数表;3.当函数的返回值或者参数与C++类无关的时候,返回值和参数表以下列代号表示:       B:constD:charE:unsigned charF:shortG:unsig
转载
发布博客 2005.11.17 ·
1014 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

DLL中调用约定和名称修饰(二)

DLL中调用约定和名称修饰(二)4、thiscallthiscall调用约定是C++中的非静态类成员函数的默认调用约定。thiscall只能被编译器使用,没有相应的关键字,因此不能被程序员指定。采用thiscall约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,只是另外通过ECX寄存器传送一个额外的参数:this指针。这次的例子中将定义一个类,并在类中定义一个成员函数
转载
发布博客 2005.11.17 ·
849 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

DLL中调用约定和名称修饰(一)

DLL中调用约定和名称修饰(一)调用约定(Calling Convention)是指在程序设计语言中为了实现函数调用而建立的一种协议。这种协议规定了该语言的函数中的参数传送方式、参数是否可变和由谁来处理堆栈等问题。不同的语言定义了不同的调用约定。在C++中,为了允许操作符重载和函数重载,C++编译器往往按照某种规则改写每一个入口点的符号名,以便允许同一个名字(具有不同的参数类型或者是不同的作用域)
转载
发布博客 2005.11.17 ·
1165 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

__cdecl,__fastcall, __stdcall

__cdecl,__fastcall, __stdcall 什么区别?函数参数入栈的方式 --------------------------------------------------------------- 在函数调用过程中,会使用堆栈,这三个表示不同的堆栈调用方式和释放方式。 比如说__cdecl,它是标准的c方法的堆栈调用方式,就是在函数调用时的参数压入堆栈是与函数的声明顺序相反的,
转载
发布博客 2005.11.17 ·
925 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

句柄和指针

句柄是一些表的索引也就是指向指针的指针,句柄和指针都是地址,句柄是Windows编程的一个关键性的概念,编写Windows应用程序总是要和各种句柄打交道。    所谓句柄,就是一个唯一的数,用以标识许多不同的对象类型,如窗口、菜单、内存、画笔、画刷、电话线路等。在Win32里,句柄是指向一个“无类型对象”(void*)的指针,也就是一个4字节长的数据。无论它的本质是什么,句柄并不是一个真正意义上的
转载
发布博客 2005.11.17 ·
1026 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多