0

我正在尝试将我的 32 位应用程序迁移到 x64 位,在我的应用程序中,我有一个在 x64 配置中构建的 C++ COM dll。我正在使用命令生成 COM C++ dll 的互操作程序集

        TLBIMP faacom.dll /out:Interop.FAACOMLib.dll

我有另一个 C# 项目(配置 - 任何 CPU),我在其中添加了上述 Interop dll 的引用。但是当我尝试构建我的 C# 项目时,即使它指向正确的路径,它也会产生构建错误:

错误 1 ​​找不到类型或命名空间名称“FAACOMLib”(您是否缺少 using 指令或程序集引用?)

但是当我在我的 C# 项目中使用相同的 Interop dll 时,它是从我的 C++ COM dll 的 32 位编译版本生成的,我没有收到任何构建错误。

我尝试使用 x64 TLBIMP.exe 生成互操作 dll,但不起作用。

有什么建议么。请帮忙...!!!

提前致谢

4

1 回答 1

3

我有同样的问题。显然,当您在 tlbimp 的 out 参数中更改 DLL 的名称时,它也会出于某种原因更改名称空间。您可以使用命名空间参数手动更改命名空间。我认为下面的命令应该可以工作。

TLBIMP faacom.dll /out:Interop.FAACOMLib.dll /namespace:FAACOMLib
于 2019-11-12T08:02:40.073 回答