当前位置: 首页 > 编程语言 > C#

如何在C语言中使用tlb文件?Share

时间:2023-04-11 01:33:46 C#

C语言中如何使用tlb文件?tlb文件(使用regasm)由一个dll(使用c#代码)制成,我可以使用#import在c++中使用它。一切都很好。有没有办法,我可以在C中使用它吗?我刚刚发现#import特定于c++。那么,有人可以告诉我如何在我的C程序中使用它吗?我的主要目的是在我的C程序中使用用C#开发的COMDLL。谢谢&Rgds,~calvinC中的COM编程很痛苦,但并非不可能。然而,责任到此为止。类型库的要点是让工具自动生成COM接口和公共类声明,以便您可以在代码中使用它们。与.h文件非常相似,但与语言无关。.NET等效项是程序集中的元数据。问题是,没有工具可以将.tlb转换为C声明。我相信您熟悉#import,这是在MSVC中使用的。但是它生成C++代码,智能指针帮助你创建COM对象,调用它们的接口方法,处理错误。如果有生成C的可用工具,那将是一个非常保密的秘密。略过一招,可以使用OleView.exe、File+ViewTypeLib查看一个类型库的内容。该视图被反编译为IDL,即接口定义语言。您可以将此文本复制并粘贴到.idl文件中,然后使用/header命令行选项使用midl.exe对其进行编译。这将生成一个包含接口的C++和C声明的.h文件。应该让你接近,只要确保类型库相当稳定,这样你就不必经常这样做。C和C++都没有#import预处理器指令。我遇到了同样的问题,因为我需要在C中使用tlb文件。我想你可以查看以下链接,它有助于如何在C中调用COM组件谢谢,sveerap你可以使用regasm和/tlb选项在Windows中注册类型注册表。之后,您可以创建实例,例如来自C++代码的常规COM调用。来自MSDN:当指定/tlb选项时,Regasm.exe生成并注册一个类型库,描述在程序集中找到的类型。Regasm.exe将生成的类型库放在当前工作目录或为输出文件指定的目录中。为引用其他程序集的程序集生成类型库可能会导致同时生成多个类型库。您可以使用类型库向VisualStudio2005等开发工具提供类型信息。如果要注册的程序集是由类型库导入程序(Tlbimp.exe)生成的,则不应使用/tlb选项。您不能从从类型库导入的程序集中导出类型库。使用/tlb选项与将类型库导出程序(Tlbexp.exe)与Regasm.exe一起使用具有相同的效果,只是Tlbexp.exe不注册它生成的类型库。如果使用/tlb选项注册了类型库,则可以使用/tlb选项和/unregister选项取消注册类型库。同时使用这两个选项将取消注册类型库和接口条目,这可以显着清理注册表。以上就是C#学习教程:如何在C中使用tlb文件?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: