目录
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