一直想做一个属于自己的框架,想着怎么去在Unreal里面使用c#进行代码的编写,所以想着以c#跟c++之前进行通讯来做这个需求
c++工程
首先建立一个c++工程,然后编译成dll动态链接库给c#使用
#include "stdafx.h"
#include <stdio.h>
#include <string>
#include <string.h>
using namespace std;
void OutPut()
{
}
extern "C" _declspec(dllexport) int Sum(int a, int b)
{
printf("Hello World \n");
return a + b;
}
然后编译生成之前将 项目设置-> 配置属性 -> 常规 -> 配置类型 修改为 动态链接库dll
点击编译生成,在项目生成的Debug里面有一个叫Debug有一个叫Test.dll的,复制到c#工程里面的Bin下面的生成exe旁边即可
c#工程
新建一个c#工程,输入一下代码,注意红色代码部分,里面EntryPoint是C++里面函数的名称,编译过后,运行就会发现在c++定义的函数Sum可以在c#里面进行是用了。
namespace UserCPlusPlusCode
{
class Program
{
[DllImport("Test.dll",
EntryPoint = "Sum",
CharSet = CharSet.Ansi,
CallingConvention = CallingConvention.StdCall)]
public static extern int Sum(int a,int b);
static void Main(string[] args)
{
Console.WriteLine(Sum(1,2));
Console.ReadLine();
}
}
}