?????????????????ù???
??????????????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