摘要: 首先,我们先把我们要开始分解的程序的代码贴出来先。以下的代码是yurow birdshover 这位网友的。代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--usingSystem;usingSystem.Collections.Generic;us... 阅读全文
posted @ 2010-08-31 12:05 啊T 阅读(593) 评论(0) 推荐(0) 编辑
  2013年5月8日

从编程所处层次而言,WIN32为最底层,其次是MFC.然后是ATL,最后是CLR.

1.        WIN32常规就是不用MFC,使用API函数编的程序;可调用Win32 WinAPI;

  1)  Win32 Application

  2)  Win32 Console Application

   3)  Win32 Dynamic-Link Library

  4)  Win32 Static Library

 

2.  MFC(Microsoft Foundation Classes:微软基本类库库有很多年的历史了,MFC是基于Windows API 的简单封装。其核心架构基于"Document/View"架构(20年前被认为很潮流的一种概念)和消息流动机制。这个库自从VC6开始到现在都没有多大改动。MFC封装的范围包括GUIIO,数据库,网络编程等等方面。但是很多系统开发必须的api都没有封装,这样开发者一般都在MFC的基础上自己处理与业务相关的任务。事实上很多人用MFC只是利用其GUI部分的封装。这个库GUI处理的效率也并不是很高,有时候与UI处理相关的代码会占到整个项目的一半甚至更多。总的来说,这是一个垂老的库,微软在10年以来,除了对MFC进行修修补补以外,没有进行大的改进或者更新。如果你问MFC还会活多久?恩,这是个问题。如果有一天MFC不在了,微软在这个级别上并没有其他产品能够代替它;可调用MFC类库;

  1)  MFC AppWizard (exe)

  2)  MFC AppWizard (dll)

  3)  MFC ActiveX ControlWizard

 

3.  ATL,Active Template Library活动模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。通过活动模板库,可以建立COM组件,然后 通过ASP页面中的脚本对COM对象进行调用。这种COM组件可以包含属性页、对话框等等控件;ATL库貌似也年纪很大了,至少在我接触到VC的时候就有它的存在了。这个库可以追溯到COM组件,因为ATL的目的就是帮助开发者更好的与COM交互。到底什么时候有COM这个东西的?我也不知道,我只知道COM是有16位版本的,在Windows升级到32位的时候COM也随着升级到了32位。COM就像一些封装好的类对象一样,通过封装系统的api,提供一些标准的方法来给你使用。所以系统中有什么组件,就可以在ATL中用什么方法。所以ATL不止可以写ActiveX,也可以有window,也可以有其它。有时候有些微软发布的功能是只以COM组件的形式发布的,例如MSXML,这时候MFC就不适合,是要ATL来处理的。但是ATL在处理UI这方面并不是很强,所以微软工程师有一个开源的UI 框架,叫做WTL,专门用来处理UI的。ATL库的缺点是,作为模板库,在出现错误的时候会比较麻烦,出错提示会牛头不对马嘴;可调用COM对象; 

  1)  可执行文件(exe)
  2)  动态链接库(dll)
  3)  服务(exe)

 

4.        CLR库是随着.Net Framework 2.0一起发布的库,其核心的实现和C#VB.net 一样。都是基于公共语言运行库。.Net Framework封装了大量系统的api,以类库的形式提供给开发者。C++中的CLR库可以使用其中和本机代码有关的部分,目前C++还不能涉及到asp.net部分。CLR库中的C++颠覆了很多标准C++的传统,甚至可以说,这里的C++不是C++,只是披着C++的皮干其他的事。这里的C++更像是C#或者类似的语言。所以这里不叫C++,而叫做C++/CLI,值得一提的是,有关C++/CLI的部分目前还没有被标准C++接受,最近微软有关C++/CLI标准化的提案被C++标准化委员会拒绝了。所以C++/CLI目前还是微软的一家之言。

posted @ 2013-05-08 22:43 啊T 阅读(683) 评论(0) 推荐(0) 编辑
摘要: 一、_T()函数_T("")是一个宏,他的作用是让你的程序支持Unicode编码因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。如果你编译一个程序为ANSI方式,_T实际不起任何作用。而如果编译一个程序为UNICODE方式,则编译器会把"Hello"字符串以UNICODE方式保存。_T和_L的区别在于,_ 阅读全文
posted @ 2013-05-08 22:40 啊T 阅读(593) 评论(0) 推荐(0) 编辑
摘要: 对话框和控件对话框是Windows应用程序中一种常用的资源,其主要功能是输出信息和接收用户的输入数据。控件是嵌入在对话框中或其它父窗口中的一个特殊的小窗口,它用于完成不同的输入、输出功能。对话框与控件关系密切,在每个对话框上一般都有一些控件,对话框依靠这些控件与用户进行信息的交互。在MFC中,对话框的功能被封装在CDialog类中,而CDialog类是CWnd类的派生类。作为窗口,对话框和其它窗口一样具有窗口的一切功能。对话框的一个典型应用是通过菜单命令或工具栏按钮打开一个对话框,当然,对话框也可以作为一个程序的主界面。MFC提供了一系列对话框类,并实现了对话框消息响应和处理机制。CDialo 阅读全文
posted @ 2013-05-08 22:36 啊T 阅读(1827) 评论(0) 推荐(0) 编辑
  2013年5月6日
摘要: 从广义上,能够从一个数值拎起一大堆数据的东西都可以叫做句柄。句柄的英文是"Handle",本义就是"柄",只是在计算机科学中,被特别地翻译成"句柄",其实还是个"柄"。从一个小东西拎起一大堆东西,这难道不像是个"柄"吗?然后,指针其实也是一种"句柄",只是由于指针同时拥有更特殊的含义——实实在在地对应内存里地一个地址——所以,通常不把指针说成是"句柄"。但指针也有着能从一个32位的值引用到一大堆数据的作用,这不是句柄又是什么?Windows系统中有许多内核 阅读全文
posted @ 2013-05-06 09:50 啊T 阅读(860) 评论(0) 推荐(0) 编辑
  2013年4月19日
摘要: 一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。程序结束时由编译器自动释放。2、堆区(heap) — 在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(static)—编译器编译时即分配内存。全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 - 程序结束后由系 阅读全文
posted @ 2013-04-19 16:10 啊T 阅读(606) 评论(0) 推荐(0) 编辑
  2013年4月18日
摘要: http://blog.csdn.net/Eric_Jo/article/details/4138548C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。一、Const作用如下表所示:No.作用说明参考代码1可以定义const常量 const int Max = 100;2便于进行类型检查const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行 阅读全文
posted @ 2013-04-18 10:44 啊T 阅读(190) 评论(0) 推荐(0) 编辑
  2013年4月11日
摘要: 转:http://blog.csdn.net/aimingoo/article/details/6634977JavaScript的数据类型问题已经讨论过很多次了,但许多人还有许多书仍然沿用着错误的、混乱的一些观点,所以就再细讲一回。提及这个讨论的原因在于argb同学在我的MSN博客(现在变成了wordproess,在这里)上的一段回复,又更早的起源则是两年前关于《JavaScript征途》一书的大讨论:从“装B被雷劈讲起——这个事就让它过去了过去了吧。在讨论中我提及到该书对JavaScript类型系统介绍的混乱,而argb翻出了这篇历史文章,指我的混乱更混乱。于是我列了以下几个问题给他:== 阅读全文
posted @ 2013-04-11 11:47 啊T 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 1. 数据类型javascript中包含6种数据类型:undefined、null、string、number、boolean和object。其中,前5 种是原始数据类型,object是对象类型。object类型中包括Object、Function、String、Number、Boolean、Array、Regexp、Date、 Globel、Math、Error,以及宿主环境提供的object类型。2. 类型判断通常在javascript中进行类型判断主要通过3种方式:typeof、instanceof、constructor。2.1 typeoftypeof操作可能返回的类型为undefi 阅读全文
posted @ 2013-04-11 11:21 啊T 阅读(615) 评论(0) 推荐(0) 编辑
  2013年4月10日
摘要: IE下的DHTML有各种MS$的私有特征,已经是众所周知。其中有个比较有趣就是:event.screenX和event.screenY,可以获得系统级别的鼠标位置坐标。 咋一听,其实也觉得没什么。屏幕上的坐标无非就是:浏览器客户区域里的坐标 + 浏览器窗口坐标 + 客户区偏移,仅此而已。 IE本身就可以通过event和screen对象得到各种屏幕和窗体位置有关的信息。 然而,真正诡异的事还没开始!按照标准的DOM模型定义,只有在触发某个事件的时候,才能从event中获得与该事件相关的参数。 也就是说,只有触发mousemove,等这类mouseXXX鼠标事件时,才有权获取和鼠标有关的... 阅读全文
posted @ 2013-04-10 11:47 啊T 阅读(284) 评论(0) 推荐(0) 编辑
  2012年11月30日
摘要: 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp 一般用作给表行加版本戳的机制。存储大小为 8 字节。 一个表只能有一个 timestamp 列。每次插入或更新包含 timestamp 列的行时,timestamp 列中的值均会更新。这一属性使 timestamp 列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改 timestamp 值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的 位置。如果该列属于索引键,则对数据行的所有更新还将导... 阅读全文
posted @ 2012-11-30 23:46 啊T 阅读(2175) 评论(0) 推荐(0) 编辑
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示