怎样创建C++/CLI程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样创建C++/CLI程序相关的知识,希望对你有一定的参考价值。

C#和C++是非常相似的两种语言,然而我们却常常将其用于两种不同的地方,C#得益于其简洁的语法和丰富的类库,常用来构建业务系统。C++则具有底层API的访问能力和拔尖的执行效率,往往用于访问底层模块和构建有性能要求的算法。

这两种场景看起来有较大的差异,大多数的时候可以各行其道。但还是有很多时候会出现融合的情况。当我们构建分布式系统的时候,由于RPC机制一般都是语言无关的,我们大可以将其各尽所长,按需划分在最能发挥其长处的位置。然而,一旦我们需要构建融合两者需求的集中式系统的时候,就会头痛无比。

此时,我们可以使用C++/CLI搭建C++和.Net之间的桥梁,C++/CLI是一个比较有意思的两栖模块,它具有如下特点

既可以访问.Net类库,也可以访问C++原生类库
既可以被.Net程序引用,也可以被C++原生程序引用
使用C++/CLI,我们可以使用C++编写算法,用C#编写界面,也可以使用.Net Framework类库增强C++程序功能,各取所长。关于的优点,园子里有篇文章介绍的比较详细,值得一读:从C++到C++/CLI。

下面我们就以一个简单的例子来演示一下它的用法:

Calculator.h:

#pragma once

namespace CppCliTest

public ref class Calculator

public:
int Add(int a, int b);
;


Calculator.cpp

#include "stdafx.h"
#include "Calculator.h"

namespace CppCliTest

int Calculator::Add(int a, int b)

return a + b;



main.cpp

#include "stdafx.h"
#include "Calculator.h"

using namespace System;
using namespace CppCliTest;

int main(array<System::String ^> ^args)

Calculator^ calculator = gcnew Calculator();
int result = calculator->Add(3, 2);

Console::WriteLine(L"Result is 0", result);
return 0;


从这个例子中,我们可以简单的管中窥豹的看看C++/CLI是在C++的基础上扩充了一套语法,使其具有访问.Net原始的功能,这里用到的有:

使用ref class声明CLI引用类型(C#中的class)
使用^(例如如这里的String ^)来定义CLI引用类型
使用gcnew创建CLI的引用类型
参考技术A 创建C++源文件,写代码,保存,编译,运行.

以上是关于怎样创建C++/CLI程序的主要内容,如果未能解决你的问题,请参考以下文章

怎样创建vue3项目

怎样创建vue3项目

怎样创建vue3项目

C#winform开发的C/S结构的程序,怎样实现自动升级的功能!望高手指教!

Linux下C/C++动态库在运行时是怎样加载进来的

我的基于 IBM MobileFirst Platform 7.1 CLI 的服务器存在一些问题;我怎样才能轻松地重新创建它?