一直想做一个属于自己的框架,想着怎么去在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

c#跟c++进行通讯

点击编译生成,在项目生成的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();
        }
    }
}




相关文章: