以VS2012为例:
1.建一个C++的解决方案,里面包含一个C++的项目
2.同一个解决方案之下,建一个C#的“类库”文件
3.C#的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Bluetooth
{
public class Bth
{
public void Bth_tran()
{
Console.WriteLine("你猜行不行");
}
}
}
写完之后,将这个程序编译一下,点生成就行
4.C++程序
#include "stdio.h.h"
#include <conio.h>
#include <windows.h>
#using "Bluetooth\\bin\\Debug\\Bluetooth.dll"//(这里是C#的项目的绝对路径,写完整)
using namespace Bluetooth;
void bluetooth ()
{
Bth ^bth = gcnew Bth;
bth->path = "D:\\MyProjiect\\无人机源码\\opencv代码\\helloOpencv\\helloOpencv\\test.txt";
bth->Bth_tran();
}
将程序同样编译一下(调试或者生成都行),然后将C#程序的.dll文件(一般在bin\Debug文件夹之下),拷贝到C++程序的.exe文件的同目录下(一般在外层那个Debug文件夹,找找就知道了,.exe文件好找)
需要说明的是,C#程序每修改一次都要重新生成一下,然后再拷贝一次.dll文件
5.点击C++的那个项目,进入 属性->配置属性->常规->公共语言运行时支持,选择“公共语言运行时支持(/clr)”这个
然后再调试程序,应该没问题了