C#和C++混合编程

本文探讨了如何在C++/CLI的帮助下实现C#和C++的混合编程。详细介绍了C++通过C++/CLI调用C#代码以及C#如何利用C++/CLI来调用C++的方法。同时,提到了C#调用C++的其他方式,如DLLImportAttribute和Swig。还特别指出,在.Net6 SDK环境下,若项目中仍使用.Net5 SDK会导致编译错误NETSDK1145,解决办法是更改编程环境或修改项目文件.vcxproj。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、CLR类库

        在CLR类库中实现C++/CLI和C#混合编程。CLR类库既能够被C++调用,也能够被C#引用(访问其中的托管类)。

1、C++通过C++/CLI调用C#

C#示例:

using System;

namespace CSharp
{
    public class CSharpClass
    {
        public void Print()
        {
            Console.WriteLine("CSharp::CSharpClass::Print");
        }
    }
}

C++/CLI示例(分别是.h和.cpp):

#pragma once

#ifdef CSHARP_CALLER_EXPORTS
#define CSHARP_CALLER_API __declspec(dllexport)
#else
#define CSHARP_CALLER_API __declspec(dllimport)
#pragma comment(lib, "CLRProject.lib")
#endif // !_CSHARP_CALLER_

class CSHARP_CALLER_API CSharpCaller
{
public:
	void Print();
};
#include "pch.h"
#include "CSharpCaller.h"
using namespace System;
using namespace System::Runti
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值