首页 相关文章 将程序从托管扩展 C++ 迁移到 C++/CLI(1)

将程序从托管扩展 C++ 迁移到 C++/CLI(1)

简介

C++/CLI代表 ISO-C++标准语言的一个动态编程泛型扩展 (dynamic programming paradigm extension)。在原版语言设计 (V1) 中有许多显著的弱点,我们觉得在修订版语言设计 (V2) 中已经修正了这些弱点。本文列举了 V1 版本语言的功能和它们在 V2 版本中的对应功能(如果存在);并指出了其对应功能不存在的构造。对于有兴趣的读者,可以查看附录中提供新语言设计的扩展原理。另外,一个源代码级别的转换工具 (mscfront) 正在开发中,而且可能在 C++/CLI的发布版中提供给希望将 V1 代码自动移植到新语言设计的人。

本文分为五个章节加一个附录。第一节讨论语言关键字的主要问题,特别是双下划线的移除以及与上下文相关和由空格分隔的关键字。第二节着眼于托管类型的变化 特别是托管引用类型和数组。还可以在这里找到有关确定性终结语义 (deterministic finalization) 的详细讨论。关于类成员的变化,例如属性、索引属性和操作符,是第三节的重点。第四节着眼于 CLI 枚举、内部和钉住指针的语法变化。它也讨论了许多可观的语义变化,例如隐式装箱的引入、CLI枚举的变化,和对值...[ 查看全文 ]

2016-02-19 标签:
  • 标签:PHP
        在C/C++中,头文件ctype.h中定义了关于字符类型一组宏,可以得到给定字符的类型。 而PHP中没有相关函数。前些天发现在www.mm4.de下载的PHP中提供了一个名为php_ctype.dll的扩展库, 加载后发现提供一部分此类的函数,特整理出来供大家参考。   在PHP中正确加载php_ctype.dll文件后,用<?php phpinfo();?可以看到以下信息:       ctype ...[ 查看全文 ]
  • 一、绪论 当微软推出VS.NET7实现了可扩展的托管C++后,C++程序员们反映不一。尽管大部分的程序员对于能够继续使用C++感到很欣慰,但几乎所有的人对于托管C++提供的晦涩语法感到很痛苦。微软明显从反馈中感觉到托管C++不是那么成功。 2003年10月6日,ECMA(欧洲计算机制造商协会)宣布成立专家组,负责结合ISO标准C++与通用语言,开发一个可扩展语言的标准,这个新的可扩展语言被称为C++/CLI标准。这个标...[ 查看全文 ]
  • 最近我访问了中国的上海和北京,参加在两地举办的微软 Tech-ED 技术大会,在那里我非常荣幸地向大家介绍了我们在 C++/CLI 方面的工作。大家的反馈非常之好,非凡是中国年轻一代程序员对 C++/CLI 的热爱和理解给我留下了深刻的印象。在那里,我还熟悉了来自上海的一位开发人员,同时也是一位技术作者, 李建忠 先生。我们经过讨论之后决定合作撰写一系列 C++/CLI 方面的文章,并以“C++/CLI全景体验”专栏的形...[ 查看全文 ]
  • Python简介 Python是一种简单易学,功能强大的解释型编程语言,它有简洁明了的语法,高效率的高层数据结构,能够简单而有效地实现面向对象编程,非凡适用于快速应用程序开发,也可以用来开发大规模的重要的商业应用。Python是一个理想的脚本语言。Python免费开源,可移植到多种操作系统,只要避免使用依靠于特定操作系统的特性,Python程序无需修改就可以在各种平台上面运行。Python拥有现代编程语...[ 查看全文 ]
  • MFC的“文档/视图”机制最大的好处是可以很容易实现“一档多视”。但其内部机制是非常复杂,我们没有必要也不可能自己用托管C++方法去设计这样的机制,不过对于常用的文档、视图和窗口的经典问题,我们仍有必要对此进行深入探讨。这些问题包括:切分窗口、视图切换以及一档多视。限于篇幅,这里仅就切分窗口以及窗格之间的数据传送作深入研究。 一、创建切分窗口 我们知道,MFC的切分窗口...[ 查看全文 ]
  • C++ 扩展和嵌入 Python 作者:胡金山 下载源代码 Python简介 Python是一种简单易学,功能强大的解释型编程语言,它有简洁明了的语法,高效率的高层数据结构,能够简单而有效地实现面向对象编程,特别适用于快速应用程序开发,也可以用来开发大规模的重要的商业应用。Python是一个理想的脚本语言。 Python免费开源,可移植到多种操作系统,只要避免使...[ 查看全文 ]
  • 幸好,我们对MFC的文档、视图和框架类之间的联系的作用有了一定的了解,因此编写托管C++的文档应用程序倒觉得不那么复杂。那么,事情该如何进行呢? 一、.NET框架中文档应用程序的机制 .NET框架只提供多文档应用程序的机制,这是因为在单文档应用程序中,文档窗口可以用相应的控件来代替(如上一篇的综合示例),由于视图也是一个窗口,因此.NET框架没有“视图类”的概念,也没有“单文档...[ 查看全文 ]
  • 入门简介 变量 C++数据类型 C++操作符 C++中的函数 main函数 数组 字符串数组 字符串操作函数 C++是个强大的语言,可以用于做别的语言做不了的工作。但是,这种强大功能是有代价的。开始使用C++时,你可能会遇到内存溢出和访问失效等问题,使程序死机。这里用最简短的篇幅介绍C++语言基础。C++语言本身有专著介绍,这种书还特别厚,所以别指望我能用三言两语说清楚。读者学完本书并使用C...[ 查看全文 ]
  • /*p129*/#include class CComplex{public: CCpomplex(double r=0,double i=0) { realPart=r; imagePart=i; } void print() { cout /*p129*/#include class CComplex{public: CCpomplex(double r=0,double i=0) { realPart=r; imagePart=i; } void print() { cout[ 查看全文 ]
  • 值类型是一种轻量级的C++/CLI类机制,非常适合于小型的数据结构,且从语义的角度来看,与数值(Value)类似。 与之相比,引用类型的实例--包括那些声明在堆栈上的,是由垃圾回收器治理的,而值类型的实例却不是。一般来说,一个值类较好的实现应只有一些数据成员,而不需要继续性,这样,在函数传递及返回值、或是赋值操作时,不会带来巨大的数据开销。 值类初印像 请看例1...[ 查看全文 ]
  • 现在我们讨论一下新的C++/CLI环境下的一个很酷的特性,称作代理构造函数。 对一个类来说,有多个构造函数是经常的事;并且这多个构造函数有一段共同的代码也很经常。一般地,在这种情况下,我们都是为该共同代码段编写一个独立的函数,然后放在每个构造器中调用。如下例: class Foo { private: int _mem; public: Foo() : _mem(0) { CommonConstructor(); } F...[ 查看全文 ]
  • 在C++层次进行优化,比在汇编层次优化具有更好的移植性,应该是优化中的首选做法。 确定浮点型变量和表达式是 float 型 为了让编译器产生更好的代码(比如说产生3DNow! 或SSE指令的代码),必须确定浮点型变量和表达式是 float 型的。要非凡注重的是,以 ";F"; 或 ";f"; 为后缀(比如:3.14f)的浮点常量才是 float 型,否则默认是 double 型。为了避免 float 型参数自动转化为 double...[ 查看全文 ]
  • 在高级语言中,程序的优化主要应该从数据结构、算法、控制流程等方面入手。各种语言各有它自身的特点,我们只能根据具体的语言来说明代码优化的方法。当然,高级语言太多,不可能把每一种语言都拉进来,主要就谈谈C,C++,JAVE,Delphi等语言相关的 代码优化。而对于其它一些语言,也 可以从这些方面中找到适合自己的优化方案。 对C++程序的优化一定是大多数程序员最感兴趣的话题,在此先说说基于C,C...[ 查看全文 ]
  • C++中,成员指针是最为复杂的语法结构。但在事件驱动和多线程应用中被广泛用于调用回叫函数。在多线程应用中,每个线程都通过指向成员函数的指针来调用该函数。在这样的应用中,如果不用成员指针,编程是非常困难的。 刚遇到这种语法时也许会让你止步不前。但你会发现,使用恰当的类型定义之后,复杂的语法是可以简化的。本文引导你了解成员函数指针的声明,赋值和调用回叫函数。 成员函数指针的...[ 查看全文 ]
  • 本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。 笔试时间90分钟。请考生认真答题,切勿轻视。 一、请填写BOOL , float, 指针变量 与零值比较的 if 语句。(10分) 提示:这里零值可以是0, 0.0 , FALSE或者空指针。例如 int 变量 n...[ 查看全文 ]
  • 下面的是学C++时要注重的。 1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; 5.不要放过...[ 查看全文 ]
  • 标签:Web开发
    一,简介 如果你对Unix/Linux有所了解的话,你应该知道他们大都自带了C和C++的编译器,分别是GCC和G++。Unix在程序安装及Make等许多地方使用到了这些编译器。利用一些控制台命令,C++和PHP, 我将向你介绍怎样生成一个完整的C++程序例子,他可以在用PHP程序来执行,并能获得相应的输出结果。我将先生成C++程序代码,并编译它,谈后讨论我们将如果通过使用PHP的函数passthru来执行这个程序。从某种意...[ 查看全文 ]
  • 标签:PHP
      Author: Mitchell Harper 翻译    :Kefeng Nie (kefeng_nie@163.com) Date   :2002-10-15   一,简介   如果你对Unix/Linux有所了解的话,你应该知道他们大都自带了C和C++的编译器,分别是GCC和G++。Unix在程序安装及Make等许多地方使用到了这些编译器。利用一些控制台命令,C++和PHP, 我将向你介绍怎样生成一个完整的C++程序例子,他可以在用PHP程序来执...[ 查看全文 ]
  • 数据库: Sql Server 2008, Oracle 9i 工具: Sybase PowerDesiner 12 试用版, PL/SQL Developer 7.1.5 迁移主要有两个工作: 1. 根据Sql Server数据库生成创建Oracle数据库的脚本 2. 修改代码中的SQL语句 根据Sql Server数据库生成创建Oracle数据库的脚本 1. 用PowerDesiner将Sql Server数据库反向工程生成物理数据模型 2. 根据反向工程生成的物理数据模型创建逻辑模型...[ 查看全文 ]
  • 一直以来都想写一点为BCB初学者快速入门的东西,前不久写了几篇《闲谈BCB》想把自己学习BCB中如何来解决难点的方法说给大家,没想到被骂得不成样子。本想不写了,但觉得这些东西留下来能做什么呢?还是用另一种方法来重新演译我的思维吧,最近有些忙,那几篇没有写完的文章,我也会尽快写完的,至于《深入QR》,我想我一定会用另一种手法来写,让你一看就会把QR这个娇女的所有衣服都脱光,不整理到这个地...[ 查看全文 ]
手机页面 收藏网站 回到头部