项目里有托管代码和非托管代码,需要互操作,可以实现为COM,也可以实现为DLL,
使用PInove显式或使用SWIG隐式PInvoke还是用COM互操作? 哪种方案更好? 为什么?

解决方案 »

  1.   

    1楼能说说理由么?
    COM互操作要比PInvoke复杂,除此之外有优势么?
    谁做过这方面的研究?
      

  2.   

    个人认为COM更好.COM的互操作比Pinvoke复杂么? 
      

  3.   

    无非就是两个约束条件,服务端编写是否复杂,客户端调用是否复杂。从服务端编写的角度看,VB编写COM最简单,Delphi中等,C++相对比较复杂,尤其是不使用ATL的情况下。从客户端的角度看,C#开发者更喜欢调用COM组件。另外,COM组件部署稍微复杂一点,尤其是升级COM组件造成的dll hell。
      

  4.   

    首选P/Invoke。简简单单多好。我喜欢用C写DLL。现在越来越不爱用C++。
    P/Invoke提供的接口不足以支撑比较复杂的操作的时候,再考虑COM吧。
      

  5.   

    com也是一个dll。
    两者差别并不是太大。
    com主要是为了跨语言二制代码重用。
    代码是你写的。怎么简单怎么用了。写个dll就好了。
      

  6.   

    感觉如果接口部分是C的话就实现为DLL好些吧,主要是简洁点
      

  7.   

    com怎么调用?
    我一直都很迷惑这个?
    网上怎么也搜不到 调用Com 的文章或者例子?我是想调用DirectX来着?
    谁说说呗?