- 博客(48)
- 资源 (1)
- 收藏
- 关注
转载 Doxygen注释的风格
1 JavaDoc风格的注释1.1 概述JavaDoc 风格的注释风格主要使用下面这种样式: 即在注释块开始使用两个星号 ‘ * ‘ /** description * description * description */1.2 简述与详述的方式Doxygen 支持的块(类、函数、结构体等)
2012-06-20 23:56:59 4580
转载 5.4 C++风格的注释
5.4 C++风格的注释5.4.1 概述C++的注释风格主要使用下面这种样式:即在注释块开始使用三个反斜杠‘/’其他地方其实与JavaDoc的风格类似,只是C++风格不用 “*” 罢了。5.4.2 简述与详述C++风格的简述与详述方式与javaDoc类似。一般注释的描述由简述开始,经过特殊分隔方式后,后面紧跟详述的内容,C++风格可以使用的分隔方
2012-06-20 23:56:13 6062
转载 C++各大有名库的介绍
C++各大有名库的介绍在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。
2012-02-23 10:36:46 4594
转载 google-glog功能介绍
本文是根据自己的理解翻译组织了glog的manual,鉴于自身的理解能力和英语水平,可能存在谬误,欢迎大家指出!英文原文见http://google-glog.googlecode.com/svn/trunk/doc/glog.html1. 概述 Goo
2011-08-19 10:06:50 39039 4
转载 C/C++ 类库开发库参考
刚贴了自己一篇文章,在:http://blog.chinaunix.net/space.php?uid=25414438&do=blog&id=131043再贴到论坛这里,分享给大家。--------------------------------------
2011-08-19 09:58:50 7838
原创 用 GetEnvironmentVariable 获取常用系统环境变量
以前曾用 GetWindowsDirectory、GetSystemDirectory、GetTempPath 等函数获取系统常用文件夹;也用过 SHGetSpecialFolderLocation、SHGetPathFromIDList 函数获取过更多常用路径;但这都不如用 GetEnvironmentVariable 获取系统变量来得快.
2011-05-14 15:51:00 1162
原创 用代码实现clistctrl某行的选中
<br />一个Report风格的CListCtrl怎么样通过程序而不是通过鼠标键盘来使某一项处于选中状态? <br />--------------------------------------------------------------- <br /> <br />SetItemState(n, LVIS_SELECTED, LVIS_SELECTED); <br />------------------------------------------------------------
2011-04-23 17:04:00 6146
原创 (转贴)C/C++程序内存泄漏检测
1. 包含头文件和定义:#define _CRTDBG_MAP_ALLOC#include #include 如果定义了_CRTDBG_MAP_ALLOC,打印出来的是文件名和行数等更加直观的信息。
2011-04-07 09:26:00 1205
原创 从 VC7 的 CHtmlView 不能正常退出谈 CComPtr 使用中的一个误区
通过上面分析纠错,我们可以知道,CComPtr 并不是一把万能钥匙,而对 COM 指针的使用也远没有因为 ATL 的出现而变得通俗起来。如果具体到这个例子,我们可以得到一个结论:
2011-04-02 10:11:00 1200
转载 一直以为lea和mov指令差不多的,今天算是知道了,顺便测试了下C
今天突发奇想想玩玩C的内联汇编,以前也经常在DOS下玩debug,那就先整个最简单的MessageBox玩玩咯网上找了一段代码
2011-03-31 11:02:00 1512 1
转载 Win32Asm及其编程工具和资源的介绍
介绍 先来对这个教程做个小介绍。Win32Asm不是一个非常流行的编程语言,而且只有为数不多(但很好)的教程。大多数教程都集中在编程的win32部分(例如,winAPI,使用标准Windows编程技术等),而不是汇编语言本身,例如伪代码(opcodes),寄存器(registers)的使用等。虽然你能在其他教程中找到这些,但那些教程通常是解释Dos编程的。它当然可以帮你学汇编语言,但在Windows中编程,你不再需要了解Dos中断(interrupt)和断口(port)In/our函数。在Windo
2011-03-31 11:01:00 1975
转载 简明x86汇编语言教程(7)-编译优化
5.0 编译优化概述优化是一件非常重要的事情。作为一个程序设计者,你肯定希望自己的程序既小又快。DOS时代的许多书中都提到,“某某编译器能够生成非常紧凑的代码”,换言之,编译器会为你把代码尽可能地缩减,如果你能够正确地使用它提供的功能的话。目前,Intel x86体系上流行的C/C++编译器,包括IntelC/C++ Compiler, GNU C/C++Compiler,以及最新的Microsoft和Borland编译器,都能够提供非常紧凑的代码。正确地使用这些编译器,则可以得到性能足够好的代码。
2011-03-31 11:00:00 1461
转载 简明x86汇编语言教程(5)-串操作
3.4 串操作我们前面已经提到,内存可以和寄存器交换数据,也可以被赋予立即数。问题是,如果我们需要把内存的某部分内容复制到另一个地址,又怎么做呢?设想将DS:SI处的连续512字节内容复制到ES:DI(先不考虑可能的重叠)。也许会有人写出这样的代码:
2011-03-31 10:59:00 1101
转载 VC7中汇编和C++混合的初步心得
1 察看编译器输出通常来说,Debug 模式单步跟踪时Alt+8 就可以看见汇编代码。问题是 Debug 只是代表了一个侧面,并不代表最终的 Release ;另一方面 Debug 模式包含了些许额外的测试代码 —— 恩,可能代码有些多...天啊,他们干嘛要加、那么多、莫名其妙的代码混淆视听阿!好嘛,看看简洁的Release模式 —— orz.... 不能单步跟踪C++程序了? 连main函数在哪里都看不见... 瞎了...Release 模式单步跟踪要需要高深的技术底气。不过也没那么绝
2011-03-31 10:58:00 1052 1
转载 简明x86汇编语言教程(6)-利用子程序与中断
4.0 利用子程序与中断已经掌握了汇编语言?没错,你现在已经可以去破译别人代码中的秘密。然而,我们还有一件重要的东西没有提到,那就是自程序和中断。这两件东西是如此的重要,以至于你的程序几乎不可能离开它们。
2011-03-31 10:56:00 1861
原创 简明x86汇编语言教程(4)-操作内存
第三章 操作内存在前面的章节中,我们已经了解了寄存器的基本使用方法。而正如结尾提到的那样,仅仅使用寄存器做一点运算是没有什么太大意义的,毕竟它们不能保存太多的数据,因此,对编程人员而言,他肯定迫切地希望访问内存,以保存更多的数据。我将分别介绍如何在保护模式和实模式操作内存,然而在此之前,我们先熟悉一下这两种模式中内存的结构。
2011-03-31 10:53:00 2208
原创 简明x86汇编语言教程(3)-使用寄存器
2.2 使用寄存器在前一节中的x86基本寄存器的介绍,对于一个汇编语言编程人员来说是不可或缺的。现在你知道,寄存器是处理器内部的一些保存数据的存储单元。仅仅了解这些是不足以写出一个可用的汇编语言程序的,但你已经可以大致读懂一般汇编语言程序了(不必惊讶,因为汇编语言的祝记符和英文单词非常接近),因为你已经了解了关于基本寄存器的绝大多数知识。在正式引入第一个汇编语言程序之前,我粗略地介绍一下汇编语言中不同进制整数的表示方法。如果你不了解十进制以外的其他进制,请把鼠标移动到这里。
2011-03-31 10:51:00 1023
原创 简明x86汇编语言教程(1)-汇编语言简介
第○章 写在前面我不想夸大或者贬低汇编语言。但我想说,汇编语言改变了20世纪的历史。与前辈相比,我们这一代编程人员足够的幸福,因为我们有各式各样的编程语言,我们可以操作键盘、坐在显示器面前,甚至使用鼠标、语音识别。我们可以使用键盘、鼠标来驾驭“个人计算机”,而不是和一群人共享一台使用笨重的继电器、开关去操作的巨型机。相比之下,我们的前辈不得不使用机器语言编写程序,他们甚至没有最简单的汇编程序来把助记符翻译成机器语言,而我们可以从上千种计算机语言中选择我们喜欢的一种,而汇编,虽然不是一种“常用”的具有“快
2011-03-31 10:49:00 1028
转载 简明x86汇编语言教程(2)-认识处理器
第二章 认识处理器中央处理器(CPU)在微机系统处于“领导核心”的地位。汇编语言被编译成机器语言之后,将由处理器来执行。那么,首先让我们来了解一下处理器的主要作用,这将帮助你更好地驾驭它。
2011-03-31 10:47:00 857
转载 #pragma 预处理指令详解
在所有的预处理指令中,#pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。 #pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。 依据定义,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。 其格式一般为: #pragma para 其中para为参数,下面来看一些常用的参数。
2011-03-31 10:03:00 695
转载 Bug Report机制的实现
写程序的人都有这个苦恼,用户说你的程序总有时会莫名奇妙的崩溃,可是你怎么也无法重现崩溃的场景,所以也无法找出程序中的Bug,难道就束手无策吗? 前几天在一本杂志(《程序员-游戏创造》)上看到一篇关于这个主题的文章,非常详细的论述了怎样通过代码和工具实现Bug Report,使得你可以快速定位崩溃的源代码行数。
2011-03-31 10:01:00 1193
转载 汇编指令手册
一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送.
2011-03-30 18:06:00 605
转载 ATL学习笔记03
4.1 COM接口类型概述描述:除了Vtable结构的接口外,COM还支持另外两种接口类型:即派发接口(Dispinterface)和双向接口(Dual Interface)4.1.1 Vtable 接口1)Vtable类型接口的缺点是需要在编译时与客户机程序进行某种形式的绑定,也就是客户机必须清楚编译阶段的接口方法和接口参数.由于这些静态信息并不包含组件中方法的具体实现,所以COM的多态性刚好解决了这一问题.2)一个接口的函数特征是在编译阶段被定义的,而不是在接口方法的实际实现
2011-03-30 18:02:00 860
转载 ATL学习笔记02
3.1 ATL 的基本特征描述:ATL提供了实现基于COM组件内核的支持.下面是ATL所提供的一些功能1)AppWizard,它负责创建起始的ATL工程
2011-03-30 18:01:00 1144
转载 Learning WTL8.0
学习WTL可以有多种方式,当然如果有COM和ATL的知识背景最好不过,如果你有MFC编程背景却最为糟糕,除非你对MFC无所不知、无所不能(如果你不是MFC的ORACLE,那么最好忘却它) Learning WTL8.0 Part-1 Learning WTL8.0 Part-1
2011-03-30 17:54:00 1188
转载 查看宏代码的具体操作方式
查看宏代码是学习VBA开发的一种快捷方式。现在我介绍如何察看宏代码。比如现在我要用VC实现在word中对一幅图像进行居中显示。我怎么知道居中显示图像的宏代码呢?下面以这个例子进行说明(环境为word2003):
2011-03-30 17:39:00 4264
转载 安全编码实践三:C/C++静态代码分析工具Prefast
概述 在前面的安全编码实践的文章里,我们讨论了GS编译选项和数据执行保护DEP功能。 结论是GS和DEP可以有效的缓解缓存溢出类型的安全漏洞的危害。关于这个结论,有两个大家需要值得注意的地方。 第一:GS和DEP是缓解(mitigation)措施。也就是说,代码本身仍然存在着安全漏洞,只是由于GS和DEP降低了其危害程度。 第二:GS和DEP存在其自身的局限性。例如,GS不是对每一个函数都适用,而DEP则需要一定的硬件支持。 那么,一个很自然的问题就
2011-03-30 17:20:00 1792
原创 一个多态类的汇编代码。
class CBase{public: virtual void show() = 0;protected:private:};
2011-03-24 11:01:00 792
原创 一个多态类的汇编代码。
class CBase{public: virtual void show() = 0;protected:private:};
2011-03-24 10:58:00 653
原创 RICH EDIT 控件 SDK 参考手册
摘要: 本文对Rich Edit控件底层消息机制进行了讲解,以期读者对Windows平台下的Rich Edit控件有一个更深入的认识,同时对于使用Win32 SDK进行开发的人员具有一定参考价值。因为文章的初衷是引领VB程序员通过Win32 API调用来扩展VB下的Rich Edit控件的功能,所以对于每个消息的详细说明和注意事项未作过多说明,感兴趣的朋友可以参考Visual Studio下的MSDN Library。 关键字:Rich Edit Control、RTF、SDK、MSDN。
2011-03-23 10:04:00 1482
原创 编写易于调试的VC代码
一 程序的设计 要避免错误,首先要从好的设计开始。对于程序的设计,需考虑到程序的两个特性: 1简单性 大多数常见的错误来源于程序设计中不必要的复杂成分。一个好的设计应该反映问题本身的要求,而不必为了刻意追求“满足将来的需要”而添加不必要的特性。实际上,简单优雅的设计比那些复杂的设计更能迎合未来的需求。 2 耦合性 耦合(decoupling)性用来衡量不同对象之间的依赖程度。松耦合的程序易于理解和实现,易于测试和维护,且这种程序包含错误的可能性小,
2011-03-23 09:54:00 865
转载 类的函数指针。
typedef double (CModalDlg::*MYFUNC)(double); ... MYFUNC p=&CModalDlg::theRealFunc; ... double m=(this->*p)(5.0);
2011-03-14 22:57:00 549
转载 BAT批处理文件教程
bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其***作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos
2011-03-01 12:03:00 1061
原创 使用boost查找区分大小写查找,查找一个字符串在另外一个字符串的位置,返回索引。
std::string strPath("C://Windows//System32//drivers");std::string strZune = "drivers";int pos1 = 0;boost::iterator_range retFind= boost::ifind_first(strPath, strZune);pos1 = retFind.begin() - strPath.begin();strPath.erase(retFind.end(), strPath
2011-02-25 09:29:00 1609
转载 vs 2008 编译boost 1.35.0 and ICU
boost 1.35.0已经内置了1.34.1为让vs2008编译所需要修改的内容。所以不再需要手工修改。虽然boost 1.35.0文档中说目前不支持vs2008,以后会支持。但是经过一番折腾,发现实际上可以编译。
2011-02-21 12:05:00 2268
转载 编译64位版本的boost
As a short answer:bjam --toolset=msvc-9.0 address-model=64--build-type=complete
2011-02-21 10:46:00 4656
转载 Boost库的编译
【二、Boost库的编译】【Setp1 准备工作】: 1 Boost 下载可以到官方网站下载:http://www.boost.org/ 2 安装VS2008 IDE【Setp2 编译Boost】1.打开Visual Studio 2008 命令提示窗口
2011-02-21 10:43:00 2995
转载 用ATL编写的单实例(DLL)服务器的原代码的例子
要想单实例,必须控制IClassFactory接口。 在你的对象类声明里 加入 DECLARE_CLASSFACTORY_EX(CMyClassFactory)
2011-02-19 15:07:00 997
转载 ActiveX Scripting技术(二)
在介绍了应用系统和脚本引擎所实现的一些关键接口之后,我们再进一步看看应用系统和脚本引擎的协作过程,如图2所示。 图中给出了8个步骤,下面逐一介绍。图2 应用系统与脚本引擎的协作过程 (1)创建必要的受控对象,这些受控对象是指将要在脚本文件中引用到的Automation 对象,通常是应用系统的文档对象,也可以是某些ActiveX控制;
2011-02-19 14:41:00 1154
转载 ActiveX Scripting技术(三)
ActiveX Scripting技术(三)(接上期)然后我们看看类CScriptHo<br />st中接口IActiveS criptSite的成员函数GetItemInfo的实现,因为引<br />擎调用GetItemInfo函数获取其名字空间中名字项的信息,所以我们要<br />在此函数中把应用系统的对象暴露给引擎和脚本,代码如下:<br /> STDMETHODIMP CScriptHost::GetItemInfo(LPCOLESTR pstrName<br />,DWORD dwRetur
2011-02-19 14:41:00 999
TheFiles 文件管理软件
2022-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人