【发布时间】:2012-01-27 04:21:42
【问题描述】:
这适用于 Visual Studio 2010,SP1。我在一个单独的 C++ 项目中有一个 C++ 类,我想从另一个项目中访问并在 C# 中使用它(两者都生活在同一个解决方案下)。我从 C# 中引用了我的 C++ 项目。我使用 /clr 选项构建我的 C++ 项目。我已经构建了一个 C++ 类的托管版本,它调用相应的本机 C++ 类。
当我从我的 C# 项目的“引用”中右键单击我的 C++ 项目引用并单击“在对象浏览器中查看”时,我的 C++ 项目作为对象列表的一部分存在,我可以打开它并查看我正在尝试使用的类、命名空间等。
但是,在 C# 代码中,当我尝试执行“使用”时,它不是命名空间自动完成列表的一部分,事实上,如果我键入 C++ 命名空间,它会给出编译错误。 “错误 1 找不到类型或命名空间名称‘MyCppClass’(您是否缺少 using 指令或程序集引用?)”
这个问题的答案是否定的,我没有遗漏 using 指令或程序集引用,如上所述。此外,我的 C++ 类不存在于默认命名空间中,它们根本不存在于我的 C# 项目的 Universe 中。
那么……我做错了什么?
【问题讨论】:
-
您可以添加任何其他外国 dll 吗?只是普通的c#?如果您的项目设置为 .net 4 客户端配置文件,我过去也遇到过类似的问题,然后尝试将其更改为普通的 .net 4,看看是否有帮助。
-
我不知道其他外国dll,需要尝试,但我可以参考其他C#项目。我被配置为 .net 4 客户端,并将其切换到普通客户端,但这并没有解决我引用 C++ 对象的问题。
-
我也有同样的问题...有没有人解决过这个问题?
标签: c# c++ visual-studio-2010 interop