C++调用C#使用C++/CLI
时间: 2025-03-05 11:44:56 浏览: 21
调用C#代码的C++/CLI桥接实例教程
为了实现C++代码调用C#代码的功能,可以利用C++/CLI作为桥梁。这使得混合模式编程成为可能,在这种情况下,托管代码(如C#)可以在本机环境中被访问。
创建C#类库
首先创建一个简单的C#类库项目,定义一些方法供其他语言调用:
using System;
namespace ManagedLibrary {
public class Calculator {
public int Add(int a, int b) {
return a + b;
}
public string Greet(string name) {
return $"Hello {name}";
}
}
}
此部分展示了两个基本函数:Add()
用于加法运算;而Greet()
则返回一条问候消息[^1]。
使用C++/CLI引用并调用C#组件
接下来编写一段C++/CLI程序来加载上述DLL文件,并执行其中的方法:
// Include necessary headers for CLI support
#include "stdafx.h"
using namespace System;
using namespace ManagedLibrary;
int main(array<System::String ^> ^args)
{
// Create an instance of the managed class
Calculator^ calc = gcnew Calculator();
Console::WriteLine(L"Calling C# methods via C++/CLI...");
// Call method defined in C#
int sum = calc->Add(5, 7);
Console::WriteLine(String::Format(L"The sum is {0}", sum));
String^ greeting = calc->Greet("World");
Console::WriteLine(greeting);
return 0;
}
这段代码说明了如何通过gcnew
关键字创建托管对象以及怎样像操作常规.NET对象那样调用其成员函数[^2]。
编译与运行
确保编译器设置允许CLR支持(/clr),并将生成的目标平台设为Any CPU或x86/x64以匹配目标环境的要求。完成这些配置之后就可以正常构建解决方案并测试跨语言互操作的效果了。
相关推荐
















