29
2012
02

COM、ATL的一些基本概念

Com、ATL编程过程中经常遇到很多概念,初学者经常会被这些概念弄的晕头转向,我在学习过程中把一些主要的名词解释记录如下: 活动模板库 (ATL) 是一套基于模板的 C++ 类,使您可以创建小型、快速的组件对象模型 (COM) 对象。它对主要的 COM 功能具有特殊支持,这些功能包括常用实现、双重接口、标准 COM 枚举数接口、连接点、分开的接口和 ActiveX 控件。果需要做大量的 ATL
27
2012
02

__stdcall和cdecl调用约定

C/C++编程时,常会看到调用约定的修饰,主要有__stdcall和__cdecl两种: __stdcall或者Pascal调用约定 __stdcall或者Pascal也被称做是标准的调用约定,即这些函数将在返回到调用者之间将参数从栈中删除。所有的Win32 API函数,除了那些带有变参的外,使用的都是这种调用方式。Microsoft平台上的COM接口所提供的所有函数使用的均是标准的调用约定
27
2012
02

将C++视为一个组合语言

C++复杂的语法规则常常让初学者困惑不已,从c++的发展史来看,c++刚出来时,就是C with class,为是兼容C语言的语法特征,所以会有一些在现在看来很奇怪的语言。 在Effective C++第三版的第一条里,Scott Meyers建议我们把C++理解为一个联邦语言,在他的某个次语言中,各种守则都相对简单,直观易懂,并且容易记住。 为了理解C++,我们将c++理解为以下四个语
12
2011
08

VC 界面库皮肤库

由于一些项目的需要,最近了解一下VC下的界面库,界面的开发很废精力,但和业务功能无关,使用成熟的界面库可以减少开发量, CJLib(mfc扩展开发包,是xtreme toolkit的前生,但xtreme toolkit收费了) http://www.codejock.com/ BCGControlBar(收费,mfc扩展开发包,功能很强大) http://www.bcgsoft.com SkinMagic(收费,看起来像Office) http://appspeed.com/html/download.html

22
2011
06

VS2008非托管c++访问webservice服务

在Visual Studio 2008以及以后版本中,微软停止了非托管C++的直接WebService引用。不过ATL Server代码已经托管到开源网站上,我们可以找到ATL Server的源代码,编译出Sproxy.exe,这个工具可以根据wsdl文件来生成非托管的代理类。这个代理类还需要配合一些头文件才能一起使用,这个相关的头文件都包含在ATL Server 的源代码内。
02
2011
06

数据类型转换:static_cast,const_cast等用法

* C++提供了四种新的类型强制: static_cast const_cast reinterpret_cast dynamic_cast
02
2011
06

VC++在各种字符串类型之间进行转换

本主题演示如何将各种 Visual C++ 字符串类型转换为其他字符串。可以转换的字符串类型包括 char *、wchar_t*、_bstr_t、CComBST
31
2011
03

Windows进程中的内存结构(堆和栈的区别)

堆栈是一种简单的数据结构,是一种只允许在其一端进行插入或删除的线性表。允许插入或删除操作的一端称为栈顶,另一端称为栈底,对堆栈的插入和删除操作被称为入栈和出栈。有一组CPU指令可以实现对进程的内存实现堆栈访问。其中,POP指令实现出栈操作,PUSH指令实现入栈操作。CPU的ESP寄存器存放当前线程的栈顶指针,EBP寄存器中保存当前线程的栈底指针。CPU的EIP寄存器存放下一个CPU指令存放的内存地址,当CPU执行完当前的指令后,从EIP寄存器中读取下一条指令的内存地址,然后继续执行。
08
2008
12

Windows窗口、控件和对话框

Windows应用程序是通过窗口(Window)、控件(Control)和对话框(Dialog Box)来和用户交互的,Windows系统预定义了很多基本的交互行为和外观,也预定义了很多共用的控件和对话框,让应用程序开发者更容易开发出一致的、标准的交互界面,降低最终用户的学习曲线,并提高用户体验。MFC(Microsoft Foundation Classes)是对Windows API的一套封装,特别是和Visual Studio的结合,它曾一度简化了Windows应用程序的开发,风靡一时。
23
2008
11

c++经典面试题(一)

本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。