怎样将C++中编写的函数导入到C#开发中来

解决方案 »

  1.   

    使用COM 或者 export你的C++的函数, 然后在C#中DllImport
      

  2.   

    C++的函数做成dll给C#调用,或者你把代码一个一个转换成C#
      

  3.   


    是不是要用dllimport 属性了?那DLL中的函数是不是要一个个的列出来?
      

  4.   

    当然是的
    要么你得封装成com
      

  5.   

    如果你的C++ 的DLL的很多函数你都需要用到, 那我还是建议你使用COM
      

  6.   

    我的函数有很多阿 ,现在一个个罗列的我都开疯掉了,但是我不知道com 怎么使用
      

  7.   

    主要参考了两篇文章《C#中简单调用c/c++旧模块》 和《基于Visual C++6.0的DLL编程实现》,复杂的理论和概念就不说了,简略地写一个实现的全过程吧:1、在Visual Studio 6.0中用C++语方创建dll文件。新建工程时选择”Win32 Dynamic-link library ”,在MyDll.h文件中按如下方式声明函数:#define LIBEXPORT_API extern "C" __declspec(dllexport)LIBEXPORT_API int Max(int a, int b);在MyDll.cpp中实现这个函数。生成MyDll.dll和MyDll.lib。2、在Visual C# .net中引用dll文件将MyDll.dll和MyDll.lib拷贝到可执行文件目录下。添加引用using System.Runtime.InteropServices;按如下方式声明一个将要引用MyDll.dll中函数的类:  public class RefComm
      {
      [DllImport("LibEncrypt.dll",
       EntryPoint="Max",           // 注意:引号内必须为完整的函数名,不能有空格
       CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
       public static extern int Max (int a,int b);
      }使用如下语句调用:
    int iSum = RefComm.Max(2,3);