zoukankan      html  css  js  c++  java
  • C++/CLI Basic

    1. Why need it?

    Mainly it works as the bridge between managed code and native c++ code, as it's the only graceful way to be able to talk to both sides.

    Using /cli compiler option, it can generate mixed code to benefit below cases:

    1.相信大多数公司都有一些旧的C++代码。在C++大行其道的时代,我们在C++上已经进行了大量投资,也许也产生了不少稳定的产品。在.NET大潮汹涌的今天,我们有必要重写这些代码吗?当然没有必要,要知道Legacy代码,并非指代码有问题,相反大多数这样的代码是成熟的产品,也经过了多外的检测。如果重写的话,不说工作量有多少,Bug肯定会引入不少,还要重新进行测试。可以说是出力不讨好。

    2.dotNET的出现不会把C++逼入绝境,在一些对速度有要求的场合如算法的实现,模式的识别,驱动程序等,还得要C++。任意语言都不是完美的。虽然我们都在追求完美,但是完美并不存在。所以我们也要进行一些权衡。

    3. 有时我们需要的第三方软件只有C++接口,我们没有源代码,所以我们没有重写代码的可能。但我们通过C++/CLI可以写一个Wrapper来供.NET使用。

    4. 有时出于代码安全性考虑,把一些敏感算法用非托管代码实现,毕竟托管代码很容易被反编译

    2. Basic Syntax

    1. ref/ value

    ref /value class / struct: reference type + value type.

    2.Boxing / unboxing

                    (example)

                    int i =123;

                    int^ hi= i;

                    int c =*hi;

                    hi =nullptr;

    3. new keywords

    gcnew: allocate reference type object onto managed heap.

    Type^:declare a handle that just like CSharp reference and C++ native pointer.

    reference: http://msdn.microsoft.com/en-us/library/ms379617(VS.80).aspx

  • 相关阅读:
    JS焦点图手动切换
    Cookie
    javaScript字符串方法(常用的)
    javaScript函数
    JavaScript条件语句和循环语句
    JavaScript基本的数据类型
    数据库的四个基本语句
    CSS文本样式
    HTML图片
    C#集合
  • 原文地址:https://www.cnblogs.com/taoxu0903/p/1682444.html
Copyright © 2011-2022 走看看