none
dllimport 和 com interop RRS feed

  • 问题

  • 专家好:
    我像调用shell32.dll这个com对象
    一般都是 dllimport 调用api  .net提供的 com interop 这个方法
    请教专家这2种方法有什么区别? 那种比较好
    2009年5月12日 6:00

答案

  • com interop 是用来在工程中引用一个com类
    dllimport 是在当前类中引入一个api方法

    两者区别主要是 com 和api 本质的区别   本身并不是.net平台的讨论范围了

    shell32.dll 本身实现了一部分com 接口  也实现了一些api function

    如果做同样的工作 两者都提供了接口  一般api会比较快 

    但是com 通用性和面向对象特性比较好


    工作突然有点忙 嘿嘿
    • 已标记为答案 咪咪 2009年5月12日 6:18
    2009年5月12日 6:15
    版主
  • 其实  com dll 也是一个标准的 c dll


    只不过它比一般的  api dll  多实现了几个com协议规范接口

    com 是一种  特殊的dll 结构,符合com规范的类  必须通过固定的接口向外提供“我是谁”“我有什么成员”

    一个dll中的类  只要实现了 com的  Iunkown 和 Idispatch  能够向查询他的程序提供“我是谁”“我有什么成员"信息的  都可以当成com类来注册

    shell32 是一种复合结构的 dll   他有很多类是符合com规范的 但是他仍然有public 出来的 api function




    工作突然有点忙 嘿嘿
    • 已标记为答案 咪咪 2009年5月12日 6:31
    2009年5月12日 6:28
    版主

全部回复

  • com interop 是用来在工程中引用一个com类
    dllimport 是在当前类中引入一个api方法

    两者区别主要是 com 和api 本质的区别   本身并不是.net平台的讨论范围了

    shell32.dll 本身实现了一部分com 接口  也实现了一些api function

    如果做同样的工作 两者都提供了接口  一般api会比较快 

    但是com 通用性和面向对象特性比较好


    工作突然有点忙 嘿嘿
    • 已标记为答案 咪咪 2009年5月12日 6:18
    2009年5月12日 6:15
    版主
  • 谢谢专家
       专家这么说我才明白为什么有些 shell32 里面的api
      interop 之后会看不到 --!
      还有一个疑问  shell32.dll这个文件具体来说算是什么类型文件(对象)? 它既包含com对象,又包含api 还包含系统图标文件。大杂烩?
    2009年5月12日 6:21
  • 其实  com dll 也是一个标准的 c dll


    只不过它比一般的  api dll  多实现了几个com协议规范接口

    com 是一种  特殊的dll 结构,符合com规范的类  必须通过固定的接口向外提供“我是谁”“我有什么成员”

    一个dll中的类  只要实现了 com的  Iunkown 和 Idispatch  能够向查询他的程序提供“我是谁”“我有什么成员"信息的  都可以当成com类来注册

    shell32 是一种复合结构的 dll   他有很多类是符合com规范的 但是他仍然有public 出来的 api function




    工作突然有点忙 嘿嘿
    • 已标记为答案 咪咪 2009年5月12日 6:31
    2009年5月12日 6:28
    版主
  • 您是顶级专家*^____________^*!
    2009年5月12日 6:31
  • 可别这么说  不过接触的比较早 :P 
    com 确实是比较老  比较经典的技术


    工作突然有点忙 嘿嘿
    2009年5月12日 6:33
    版主
  • shell32.dll是一个标准的windows动态连接库文件啊!
    周雪峰
    2009年5月12日 6:37
    版主
  • 我也想去做做COM开发呢~
    2009年5月12日 6:43