我现在有个项目是两个人一起做的,一部分是用C++写的,一部分是C#写的,现在要把两边的程序合在一起。有什么好的方法。
1、可以将C++写的部分打包成exe,然后C#直接调用吗?
2、或者是将C++部分打包成dll,C#直接调用?

解决方案 »

  1.   

    打包成DLL, 然后在C#里DllImport
    或者
    用managed C++把native C++包装一下再调用
      

  2.   

    1、可以将C++写的部分打包成exe,然后C#直接调用吗?
    2、或者是将C++部分打包成dll,C#直接调用?这两种都可以的,不过c++多用来做dll接口
      

  3.   

    打包成dll遇到了问题,在C++中定义了一些类,那么怎么import到C#中呢?
    目前,我查资料了解到的方法只有调用C++中定义的函数和数据,那在C++中定义的类,在C#中怎么实例化呢?
      

  4.   

    把C++打包成DLL C#引用C++打包的DLL
    我给你举个例子怎么用C++打包的DLL比如我现在有个用C++开发的WinLockDLL.DLL,DLL中有个方法 
    int Add(int a,int b);C#中引用代码       [DllImport("WinLockDll.DLL")]
            public static extern int Add(int a,int b);要把DLL放到C#项目的exe路径下,这样就可以再C#项目中使用Add()方法了
      

  5.   

    看错了 你是要引用DLL中的类?
    看看这个
      

  6.   

    我也看了那个帖子 好像不太好做 要把C++封装的DLL做成COM组件
      

  7.   

    封装成COM组件即可。。做COM。需要去[assembly: ComVisible(true)]
    然后提供的接口需要用interface做好接口。再继承去实现。。
    interface里的每个接口再加上个ID顺序号属性。。就差不多了。。
    要注意数组的参数在C++的转换。。这个貌似对应C++两个**的。忘了不过差不多就这样吧。。
    C++调用C#.....
      

  8.   

    如果是托管C++定义的类C#引入DLL和namespace后可以直接使用
      

  9.   

    如果是用托管C++做封装dll,新建C++项目时,选哪一项啊
      

  10.   

    选VC++ --- CLR --- CLR Library不要直接选VC++。列的不全
      

  11.   

    VC++  CLR  CLR Library
      

  12.   

    c++ 代码做成动态库或者Com C#来调用对于P/Invoke codeplex上有个工具 可以生成C#和C++对应的接口声明代码。http://clrinterop.codeplex.com/releases/view/14120
      

  13.   

    如果要使用c++的类。可不是这么容易。
    建议c++写成静态的。这样就通用了。把类的调用写在c++里。