从 .tlb 文件创建互操作 dll

Create interop dll from .tlb file

我有一个 C++ 项目和一个 C# 项目。 C# 项目通过名为 interop.X.dll 和 interop.XCom.dll.

的 2 个互操作 dll 访问 C++ 项目的方法

当我的 C++ 项目重建时,它会创建 X.tlb 和 XCom.tlb 文件,它还会创建 x_i.c、x_h.h、xCom_i.c、xCom_h.c 文件。我发现这些文件是由于 "configuration properties -> MIDL -> output" 中的项目设置而创建的,如下所示;

我需要知道的是如何使用 .tlb 和其他 c 文件创建不会自动创建的 2 个互操作 dll。我试过使用 tlbimp x.tlb /out:Interop.x.dll,但创建的 dll 似乎不起作用。

谢谢。

这是我对以上评论的总结。


为什么不直接绕过 tlb 引用,而是直接添加一个 COM 引用?

将 .NET 中的 COM 引用添加到您的 COM 库需要对 COM 项目进行零更改。当您从 .NET 项目添加 COM 引用时,VS 会创建互操作 dll