本帖最后由 yanfei_519 于 2009-07-15 09:54:35 编辑

解决方案 »

  1.   

    提供一个思路,把.h,.cpp编译成COM型的dll(把相关的接口都写到*.def进行导出),然后C#就可以直接引用了。
      

  2.   

    生成dll不难,曾经成功的一个方法是用vc++ 6.0建个新工程,把.h和.cpp文件都包括进来,然后在.def文件里声明入口函数,编译成dll,c#里用dllimport属性来引用。
    难的是类型转换,如果有c#里不支持的数据类型,据说要做个包装类来转换,幸好我当初没有碰到这问题,但也因此不知道怎么弄。
      

  3.   

    com是个规范,当初看了一点,早忘了,只记得一个com组件,需要有几个接口,必须从什么IUnknown接口继承等。我觉得这样弄也许更麻烦
      

  4.   

    用CLR项目封装一下吧。clr windows控件库,原有的CPP h都可以直接使用,把需要使用的类或者函数包装一下就可以了。
      

  5.   


    我之前也这样试过,可编译的时候出现了问题,如果可以的话,我把源文件发给你,你帮我看看!?TKS!
      

  6.   

    直接编译为传统的dll文件。然后在C#里面直接调用。用[dllimport]属性把原型申明一下就行了。
    和在C#里面调用API一样。
      

  7.   

    .def文件示例:LIBRARY      "cctest"EXPORTS
        getByte @1getByte函数在.h里定义c#里的调用形式:
     [DllImport("cctest.dll", EntryPoint = "getByte", ExactSpelling = false, CallingConvention = CallingConvention.Cdecl)]
            public static extern byte getByte(byte[] a,int b);
      

  8.   


    发到我的邮箱里,lib等文件也一并发过来。