RegAsm.exe 和 regsvr32 有啥区别?如何使用 regsvr32 生成 tlb 文件?
Posted
技术标签:
【中文标题】RegAsm.exe 和 regsvr32 有啥区别?如何使用 regsvr32 生成 tlb 文件?【英文标题】:What is difference between RegAsm.exe and regsvr32? How to generate a tlb file using regsvr32?RegAsm.exe 和 regsvr32 有什么区别?如何使用 regsvr32 生成 tlb 文件? 【发布时间】:2010-11-12 21:44:33 【问题描述】:谁能告诉我 regsvr32 和 RegAsm 有什么区别?我的 Dll 是用 C# 编写的,那么如何将类导入 c++?
【问题讨论】:
【参考方案1】:regsvr32
将加载库并尝试从该库调用DllRegisterServer()
。它不关心DllRegisterServer()
实际做了什么——它只是调用该函数并检查返回值。您可以使用它在非托管 DLL 中注册 COM 服务器。它无法生成 .tlb 文件。
regasm
会将 COM 公开的 .NET 程序集注册为 COM 服务器。您将它用于 .NET 程序集。它可以仅在给定程序集的情况下生成 .tlb 文件 - 它检查存储在程序集中的类型信息并将 COM 公开的实体包含到类型库中。
【讨论】:
@Aamir:当我第一次尝试制作暴露 COM 的程序集并从 VC++ 应用程序中使用它并使该应用程序可再分发时,我遇到了类似的问题。不同的是,***.com 是后来推出的。以上是关于RegAsm.exe 和 regsvr32 有啥区别?如何使用 regsvr32 生成 tlb 文件?的主要内容,如果未能解决你的问题,请参考以下文章
Java 中 给一个object 赋值属性, 既可以用构造函数的方式,也可以用setXXXX()的方式,而它们之间有啥区