以加法为例,讲解该过程
  首先建立一个C#项目

  源文件--右键添加cpp文件
  // the code is write in c
  #ifdef __cplusplus
  extern "C"{
  #endif
  __declspec(dllexport) int __cdecl add(int a, int b);
  #ifdef __cplusplus
  }
  #endif
  int add(int a, int b)
  {
  return a + b;
  }
  AdderImpl项目修改配置类型为动态库(.dll)

  把该dll文件复制到

  其中AdderWapper.cs中代码为:
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  using System.Runtime.InteropServices;
  namespace TestApp
  {
  class AdderWapper
  {
  [DllImport("AdderImpl.dll", CallingConvention = CallingConvention.Cdecl)]
  static extern private int add(int a, int b);
  static public int performAdd(int a, int b)
  {
  // convert c# data to c data
  // TODO:
  // call the c interface
  int ret = add(a, b);
  // convert result from c data to c# data
  // TODO:
  // return the result
  return ret;
  }
  }
  }
  Program.cs中代码为:
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  namespace TestApp
  {
  class Program
  {
  static void Main(string[] args)
  {
  int a = 3; int b = 5;
  int c = AdderWapper.performAdd(a, b);
  System.Console.WriteLine(c);
  }
  }
  }
  生成,也是让dll和exe在同一文件夹下

  end