C++/CLI学习笔记1(快速打通c++与c#相互调用的桥梁)

1.1 什么是c++/cli

C++/CLI是C++和.NET Framework平台版本,从Microsoft Visual Studio 2005开始便己存在,已成为一项国际标准。ECMA标准请参考以下网址:http://www.ecma-international.org/publications/standards/Ecma-372.htm

它对标准C++进行了一些修改。标准C++允许的一些操作在C++/CLI中是不允许的(例如不能从多个基类继承),并进行了一些修改以支持.NET功能(例如接口和属性)以及兼容.NET运行时。

1.2:第一个c++/cli 应用程序

using namespace System;
int main()
{
    console: :writeLine( "Hello,world ! " );
    return 0;
}


}

1:第一行(从using 开始)告诉编译器要使用.NET System库。项目中能使用许多同的库;using语句的作用就是告诉编译器要使用什么库。

2:剩下的是一个C++函数。C++的所有代码块都称为“函数”,没有过程或子程序等。每个C++函数都包含函数头(int main())和函数主体(大括号中的所有内容)。函数头要列出函数的返回类型(本例是int)、函数名称(main)和圆括号中的参数列表。注意,即使无参也要加上圆括号。

3:所有C++语句都以分号结尾。

4:以 return开头的行作用是退出函数,返回值0是表明执行成功的标准值

1.2.1:main(...)函数

编译器总是查找main函数。没有,就会报错,无法创建可执行的应用程序。所有可执行程序都必须包含该函数。

C++是自由格式的语言。意味着编译器会忽略任何空格、回车符、换行符、制表符、分页符等。这些字符统称为空白字符。只有字符串中的空白字符才会被识别。自由格式的语言允许程序员灵活利用制表符或空格对代码进行缩进。

1.2.2: c++关键字和标识符

C++关键字(也称“保留字”)是对编译器有意义的特殊单词。示例程序用到的关键字包括using,namespace和return。变量或函数名不允许使用关键字,否则编译器会报错。

无效标识符 原因
111var 不能以数字开头
var+111 只能包含字母,数字和下划线
return 不能使用系统保留字

只要不违反这些限制,任何标识符都合法。

注意:不推荐以下划线开头,因为C++内部系统变量通常以_开头,使用下划线前缀可能会跟它们冲突

1.3:编写一个c++/cli程序

#include "stdafx.h"
using namespace System;
int main(array<System::String^> ^args){
    Console::WriteLine(L"Hello World");
    return 0;

}

相关推荐

  1. C++/CLI学习笔记1(快速打通c++c#相互调用桥梁)

    2024-03-16 01:48:30       21 阅读
  2. C++/CLI学习笔记3(快速打通c++c#相互调用桥梁)

    2024-03-16 01:48:30       16 阅读
  3. C++/CLI学习笔记8(快速打通c++c#相互调用桥梁)

    2024-03-16 01:48:30       21 阅读
  4. C++/CLI学习笔记9(快速打通c++c#相互调用桥梁)

    2024-03-16 01:48:30       22 阅读
  5. C++/CLI学习笔记4(快速打通c++c#相互调用桥梁)

    2024-03-16 01:48:30       17 阅读
  6. C++/CLI学习笔记5(快速打通c++c#相互调用桥梁)

    2024-03-16 01:48:30       17 阅读
  7. C++/CLI学习笔记12(快速打通c++c#相互调用桥梁)

    2024-03-16 01:48:30       18 阅读
  8. C++/CLI学习笔记10(快速打通c++c#相互调用桥梁)

    2024-03-16 01:48:30       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 01:48:30       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 01:48:30       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 01:48:30       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 01:48:30       20 阅读

热门阅读

  1. Android13 客制化U盘挂载路径

    2024-03-16 01:48:30       19 阅读
  2. ArrayList 是线程安全的么?

    2024-03-16 01:48:30       19 阅读
  3. R在直方图上添加一个更平滑的密度曲线

    2024-03-16 01:48:30       21 阅读
  4. JVM配置调优

    2024-03-16 01:48:30       21 阅读
  5. C语言程序设计(第四版)—习题11程序设计题

    2024-03-16 01:48:30       18 阅读
  6. PID、LQR、MPC三者的原理及区别

    2024-03-16 01:48:30       36 阅读
  7. mybatis转义字符

    2024-03-16 01:48:30       19 阅读
  8. 563: String(python)

    2024-03-16 01:48:30       20 阅读
  9. Solidity Uniswap V2 library contract

    2024-03-16 01:48:30       19 阅读