在VC中使用COM dll++动态链接库
我在 C#.net 中创建了一个 COM dll,并从 VCPP 代码调用 COM dll 的方法。
COM dll 的创建也会导致 tlb 文件的创建,在阅读相关内容后发现我需要使用 regasm 注册 tlb 文件以创建它的注册表项。
现在,如果我在未安装 Microsoft Visual Studio 的计算机上运行该应用程序,那么我将无法使用 regasm 注册 tlb 文件,而且当我尝试使用 regsvr32 注册 tlb 文件时,它会给出错误消息。
有解决方法吗?
I have created a COM dll in C#.net, and calling a method of COM dll from VCPP code.
The creation of COM dll also result in a tlb file creation, after reading about it found that I need to register the tlb file using regasm to make a registry entry of it.
Now if I am running the application on a machine where Microsoft Visual Studio is not installed, then I wont be able to register the tlb file using regasm, also when I attempt to register the tlb file using regsvr32 its giving an error message.
Is there a work around for it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不需要注册 .tlb 文件 - 您必须使用
regasm
和/codebase
参数来注册 COM .dll 文件。您需要在想要通过 COM 使用 COM .dll 的每台计算机上运行regasm
。regasm
随 .NET 框架一起提供和安装,因此如果它不可用,则意味着您无法使用 COM DLL,因为后者无论如何都需要 .NET 运行时。另请参阅此问题。
You don't need to register the .tlb file - you have to use
regasm
with/codebase
parameter to register the COM .dll file. You need to runregasm
on every machine where you want to use your COM .dll via COM.regasm
is shipped and installed with .NET framework, so if it's not available it means you can't use your COM DLL since the latter requires .NET runtime anyway.Also see this question.