代码之家  ›  专栏  ›  技术社区  ›  Laurynas Biveinis

.NET C:是否可以自动导入TLB(半)并将PreserveSig添加到一个类型?

  •  0
  • Laurynas Biveinis  · 技术社区  · 14 年前

    我有一个很大的IDL,我要导入到一个C项目中。

    在我必须使用一个与hresult->comException转换不完全兼容的接口之前,一切都很好(我可以在这里详细介绍,但这不应该是相关的)。

    是否可以在某个类型中添加preservesig?我希望避免使用C手动声明所有COM接口。如果有一种方法可以从tlbimp中获取C源文件而不是程序集,那么这对我来说是合适的,但是afaik没有这种方法。

    还有其他选择吗?谢谢。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Hans Passant    14 年前

    您可以使用 Ildasm.exe ,编辑声明,然后使用ilasm.exe将其重新放回。使用示例C声明了解如何编辑它。

    或者您可以在C中声明一个接口。名称不重要,只有guid必须匹配。在Reflector中打开interop库,并将接口声明复制/粘贴到C代码中。更改接口名称并修改导致问题的方法。