none
C#中引用C++ API的问题 RRS feed

  • 问题

  • 因为我不太懂C++ 希望能表达清楚

    我现在要在一个C#项目中(.NET 4.0)引用一些C++6.0编的API(有源代码), 这几天一直在看C#和非托管C++交互的问题. 大概有这几种解决方案, 一个是编成dll, 在C#中DLLImport, 另外就是C++/CLI或者COM组件. 具体到我用的的这个C++的API来说, 我不知道选择哪种方案更好, 因为这个API的代码量很大, 我认为通过手工的方式去改头文件(即使只是我要用到的)使得他可以被C#调用是不现实的. 所以我想是不是应该这样来做, 就是把我要完成的工作仍然用C++写一个工程解决, 然后在C#中想办法和这个完成工作的C++工程交互, 而不是直接和源代码交互.

    但即使这样, 也涉及到一些问题. 比如说通过什么方法可以在C#中完成以下C++代码完成的操作?

    // 要引用一些API的头文件
    
        DtExerciseConn conn(3000, 1, 1, 1);
        DtVrfRemoteController controller(&conn);
        controller.loadScenario("foo.scn");
    
    像这里面要构造两个API定义的类的实例, 构造函数里要传自定义实例的指针, 要调用类方法, 这些在C#中又该如何实现?



    • 已编辑 misami 2012年11月29日 3:46
    2012年11月29日 3:44

答案