C#调用C++的dll文件

目录

1.C#调用C++(类)的dll文件

C#端的代码:

C++端的代码:

 被调用的类的头文件

被调用类的实现SampleCppClass.cpp

封装成dll的头文件

封装成dll的实现

2.使用委托调用


1.C#调用C++(类)的dll文件

C#端的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

//c#调用c++
//c++使用extern "C" __declspec(dllexport)  指示使用c编译器来编译代码
//然后使用DLL调用
namespace ConsoleAppTest1
{
    class Program
    {

        [System.Runtime.InteropServices.DllImport("E:/program/C#/ConsoleAppTest1/Sample.dll")]
        private static extern int Add(int n1, int n2);

        [System.Runtime.InteropServices.DllImport("E:/program/C#/ConsoleAppTest1/Sample.dll")]
        private static extern int Sub(int n1, int n2);

        static void Main(string[] args)
        {
            int a = Add(1, 2);
            Console.Write(a);
        }
    }
}

C++端的代码:

 被调用的类的头文件

/*************************************************************************
【 名  称 】SampleCppClass.h
【 功  能 】定义为_declspec(dllexport)的类,可以将函数都封装在dll里面,便于c#调用
【 参  数 】
【返 回 值】
【 说  明 】此方法是以C语言接口的方式导出,,以便于c#调用
【开 发 者】    Yh
【 日  期 】2019.3.11

更改记录:
【修改说明】
【开 发 者】
【 日  期 】
*************************************************************************/

#pragma once
class _declspec(dllexport) SampleCppClass
{
public:
	SampleCppClass();
	~SampleCppClass();

	
	int Add(int a, int b);
	int Sub(int a, int b);
};

被调用类的实现SampleCppClass.cpp


#include "SampleCppClass.h"


SampleCppClass::SampleCppClass()
{
}


SampleCppClass::~SampleCppClass()
{
}

int SampleCppClass::Add(int
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值