gpt4 book ai didi

c# - 无法从 VS 2010 SP1 中的 C# 访问 C++ 类/命名空间

转载 作者:太空宇宙 更新时间:2023-11-04 14:19:06 25 4
gpt4 key购买 nike

这是与 Visual Studio 2010 SP1 一起使用的。我在一个单独的 C++ 项目中有一个 C++ 类,我想从另一个项目(都在同一个解决方案下)在 C# 中访问和使用它。我从 C# 引用了我的 C++ 项目。我使用/clr 选项构建我的 C++ 项目。我构建了一个 C++ 类的托管版本,它调用相应的 native C++ 类。

当我从我的 C# 项目的“引用”中右键单击我的 C++ 项目引用,然后单击“在对象浏览器中查看”时,我的 C++ 项目作为对象列表的一部分存在,我可以打开它并查看我尝试使用的类、命名空间等。

但是,在 C# 代码中,当我尝试执行“using”时,它不是命名空间自动完成列表的一部分,事实上,如果我键入 C++ 命名空间,它会出现编译错误。 “错误 1 ​​找不到类型或 namespace 名称‘MyCppClass’(是否缺少 using 指令或程序集引用?)”

这个问题的答案是否定的,我没有遗漏 using 指令或程序集引用,如上所述。此外,我的 C++ 类不存在于默认命名空间中,它们根本不存在于我的 C# 项目的世界中。

那么...我做错了什么?

最佳答案

这可能为时已晚,但我刚刚遇到了与您相同的问题,然后回来看看您是否得到了答案。

最终我发现您需要实际添加您的 COM 类作为对您的 .net 项目的引用以及 .net 包装器类。我创建了一个 c++ COM dll 并使用 tlbimp 生成了一个 .net 包装器。然后,我将包装器添加到我的项目中,并在 COM 选项卡下添加引用,那里有我的 COM 程序集,所以我也添加了它,我的项目编译并运行良好。

关于c# - 无法从 VS 2010 SP1 中的 C# 访问 C++ 类/命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9028949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com