下面几个月我会在MSDN中国的WebCast讲授一个系列的C++/CLI,也就是VC++ 2005的语言内核。下面是这个系列的介绍。其中(1)和(2)分别安排在4月20日和4月28日。欢迎对C++/CLI感兴趣的朋友来这里http://www.microsoft.com/china/msdn/default.aspx捧场:)
直接免费注册即可,对于时间不凑巧的朋友,MSDN中国在讲座之后提供有视频下载服务。
(1)VC++ 2005 (C++/CLI):基础概览
VC++ 2005(又称C++/CLI)是微软为广大C++程序员量身定做的,面向.NET平台的一门系统级编程语言。如何认识VC++ 2005?它为我们带来了什么?怎样才能学好VC++ 2005?本课程将对其做一概括性的介绍,并就这些热点问题做详细的探讨,帮助观众认识这一全新的编程语言。
(2)VC++ 2005 (C++/CLI):类型系统
类型系统是一门编程语言的“立身之本”,VC++ 2005由于对ISO-C++和CLI实现了集成而使得其类型系统在突显强大的同时,也凭添了许多复杂。本课程将对VC++ 2005包含的两大类型系统:托管类型系统和本地类型系统,及其可能的混合体进行全面的探讨,为您建立一个清晰的类型图景。
(3)VC++ 2005 (C++/CLI):类型成员
作为支持面向组件程序设计的编程平台,CLI和ISO-C++有着迥异的设计思路,其中一个表现就在类型成员的设计上。本课程将向大家介绍CLI托管类型系统中的各种成员(除析构函数),包括字段、方法、构造函数、操作符、属性、事件以及应用在它们之上的各种修饰,并就它们和ISO-C++本地类型系统中的类型成员做横向的比较。
(4)VC++ 2005 (C++/CLI):确定性资源清理
确定性资源清理是C++/CLI中提出的一个新的语言特性,它利用C++便捷的语法,简化了.NET应用程序开发时对非托管资源的处理,而这在其他.NET语言中需要繁杂的Dispose模式才能实现。本课程将对C++/CLI中确定性资源清理所涉及到的语法构造、运行机理等进行深入的剖析。
(5)VC++ 2005 (C++/CLI):指针与对象模型
指针是C++语言的精髓,也是C++语言的难点,由于CLI平台的托管特性,C++/CLI中出现了各种指针的变体,可谓难上加难。为什么C++/CLI的指针类型如此复杂?因为C++/CLI背后的对象模型非常复杂。C++/CLI中的指针类型完整映射了ISO-C++本地世界和CLI托管世界所包含的所有对象模型。本课程将从本地对象模型和托管对象模型入手,步步深入,探讨C++/CLI中的各种指针。
(6)VC++ 2005 (C++/CLI):元数据与动态编程
如果问CLI和ISO-C++最大的区别是什么?答案一定是元数据。元数据是CLI组件平台的灵魂,它在构建整个CLI组件平台中居功甚伟。在夯实CLI各种组件基础设施的同时,元数据也赋予了CLI强大的动态编程能力。本课程将从元数据入手,探讨C++/CLI中的动态编程。
(7)VC++ 2005 (C++/CLI):泛型编程
泛型编程在C++领域中早已深入人心,它赋予了类型参数式多态的能力,这种能力在ISO-C++中以编译时的模板实例化为依托。而CLI借自己强大的元数据系统,选择了运行时的模板实例化来支持泛型编程。C++/CLI在保留ISO-C++“编译时泛型编程”的同时,也增添了对CLI“运行时泛型编程”的支持。本课程将着重介绍C++/CLI中的“运行时泛型编程”,并将它们和“编译时泛型编程”做横向的对比。
(8)VC++ 2005 (C++/CLI):与ISO-C++的集成
在选择支持CLI的问题上,C++/CLI大胆地选择了“集成”而非“替换”的策略。同时支持ISO-C++和CLI两种编程方式并不复杂,但如何将二者在对象模型的层次上集成在一起则是一个非常复杂的问题。本课程将以ISO-C++本地对象模型和托管对象模型为纲,介绍C++/CLI中的集成技术。
(9)VC++ 2005 (C++/CLI):非托管互操作
代码重用是任何一个编程平台、语言都不可忽视的问题,C++/CLI同样也不例外。实际上C++/CLI不仅支持模块级(DLL动态链接库)、和组件级(COM组件)的重用,同时也支持源代码级(IJW,It Just Works技术)的重用。本课程将介绍这些互操作技术。
BTW,本周六在徐家汇有IT俱乐部的4月线下活动(http://www.chinaitclub.org),主题是Windows 移动开发平台,嘉宾为同济大学的何宗键先生,何先生是微软 Windows 嵌入式开发认证讲师,在嵌入式/移动开发领域有很好的造诣。对移动开发感兴趣的朋友,不可错过。
打印 | 张贴于 2005-04-19 08:42:00 | Tag:C++/CLI

留言反馈
String s;
上述声明方式被VC++2005编译器拒绝了!引用类型都可以采用上面这种姑且称之为“栈式”声明方式,为什么String不可以?还请李老师多多指教,谢谢!
现在有好书吗?推荐一下
2. VS c++2005中stl的迭代器不允许赋初值NULL,可以我有的函数返回值是迭代器,而且用作重要的判断依据,请问有什么好的解决办法没有。
非常感谢。
我们读的都是烂书吗?
还有就是请问Visual C++ .NET 2005中的C++/CLI是否支持泛型编程,是否提供了STL.NET
《Microsoft .NET框架程序设计》这本书的第一版我就买了,在您出了修定版后我又买了一本,不过目前只看了前几章,但可以明显看出质量的差别。先谢谢您为此书付出的辛勤劳动,希望早日见到您更多书的面市。
这其实是一个与实力无关的话题。如果就技术来讲,我想大家谈论的也只是技术上的东西,虽然有些东西不是首发在博客堂上——既没这个必要,也做不到。但是达到技术交流、学习的目的就可以了,虽然并非所有的人都能受益,但我想没有人从中受害。
如果硬要说宣传的话,我也乐意直言不讳地说说我的想法。我以前也是喜欢闭门造车,自己把玩技术。但是接触到的事情和人多了,我慢慢发现其实中国很多事情并非自己一个人独善其身就好。
举一个例子,我至今还经常接到很多读者朋友的来信告诉我,如果他们早读到《Microsoft .NET框架程序设计(修订版)》他们今天的状况要好很多——当然我相信其他的好书同样也有这样的情况。作为一个技术热爱者和技术教育者,其实我听到这些话蛮心酸的。因为我自己也走过一些弯路,也很早在一些劣质图书编织的迷雾中跋涉了很长时间。所以我对此感同身受。我知道那种走错了道,看错了书,跟错了人的程序员内心的苦涩。
就计算机领域来讲,在美国,日本,一本好书动辄就是数十万的销量。而我们呢?卖到2、3万就是很不错的书了——要知道我们程序员的基数实际上相当大。不是我们的程序员不读书,而是大家都在读烂书,读平庸的书。如果能够有一些好书,为什么不让更多的人知道,更多的人受益呢?非要让大家“相见恨晚”才是谦谦君子么?
拓开来看,如果有一些好的东西,为什么不让更多的人知道,分享呢?一定要清高才能体现中国人的谦逊么?如果大家都谦逊起来,我想中国的软件界恐怕会继续这样原地踏步。
这是一个思维方式的问题。
Anyway, 谢谢你能来这里,以后大家互相学习交流的机会还很多。我也非常乐意听取不同的意见。
谢谢你的批评,虽然我不同意你的论断。近期来讲,我的确很少有时间闲下来惬意地做技术blog,原因是太忙,虽然确实有一个系列的技术blog计划,但是一直未能成行。如果非要将所谓的原创技术放到博客堂才算发过技术的东西的话,那也许我发的某些内容并不属于这一类。如果不符合博客堂的要求,我会很坦然离开,我真的不需要让博客堂来为我做广告。
To sunmast,
谢谢,但愿后面的讲座不会让你失望。