CodePlex开源版Tlbimp.exe的两个新功能

昨天,我们开发团队在CodePlex上发布了一个Tlbimp的新版本。关于Tlbimp的用途介绍这里就不多说了,大家有兴趣的话可以参看半个月前写的《Tlbimp.exe在CodePlex上开源啦!》一文。半个月后,我们根据用户最迫切的需求,给Tlbimp的功能作了小小的改进,并将这个最新版本再次发布在CodePlex上。主要的新功能包含了两个新的选项:

  • /v2:当用户在命令行中输入 >tlbimp.exe Foo.tlb /v2 开启/v2选项时,Tlbimp将会使用最新的规则来转换类型库。新的规则大多解决了老版本Tlbimp因为技术限制而对类型库进行的转换不够正确的问题。不直接应用这些新规则,主要是考虑到兼容性的问题,但我们建议用户能够尽量使用新的规则,以使生成的interop assembly尽可能正确,减少后续为得到正确行为而增加的开发开销。在这个版本中加入的一个新的规则是将类型库的struct中的VARIANT_BOOL转换成bool类型。而不用/v2,Tlbimp将按照老版本的规则,将VARIANT_BOOL转换成short。
  • /PreserveSig:使用这个选项,Tlbimp将不会把标有[out, retval]参数类型转换成返回值,而是保留其参数性质,并为方法添加PreserveSig属性。

最新版的开源Tlbimp可以在其网站上下载到。如果大家有什么问题、建议,也可以通过该网站向我们提出。