我们正在将一家通信公司的软件集成到我们自己的软件中,用于接听电话、转接电话、与客户匹配号码等。
他们给了我们API文档,其中包括一个TLB文件。我们已经使用tlbimp工具创建了一个程序集,现在我们希望在实现中使用它。
tlbimp创建的一些类被赋予了内部构造函数,使得它们无法实例化。我认为在这个实例中应该没问题,因为另一个类应该返回这些类的一个实例。
这让我思考:在使用tlbimp.exe和TLB作为一个整体时,有没有其他我应该注意的陷阱?手动创建DllImport/ComImport/PInvoke代码会更好吗?
发布于 2012-05-01 23:13:16
一般来说,如果你有一个TLB,我至少会从使用tlbimp生成的程序集开始我的工作。
该工具本身被广泛使用,并根据TLB中提供的定义生成正确的代码。我见过一些情况,结果代码是不正确的,但它几乎总是返回到非常复杂的数组编组情况,或者TLB作者只是添加了错误的COM注释。
如果您确实发现了任何问题,那么您应该考虑开始手动编写修复代码。但我肯定不会这样开始。
发布于 2012-05-02 01:56:47
不能调用在类型库中声明的那种COM接口方法。实现COM服务器的DLL不会导出这些方法。您可以将后期绑定与反射或dynamic关键字一起使用,但这样做既痛苦又容易出错。使用导入库,这就是它存在的原因。
https://stackoverflow.com/questions/10399695
复制相似问题