【问题标题】:Visual C++ error with two projects: name followed by '::' must be a class or namespace name两个项目的 Visual C++ 错误:名称后跟“::”必须是类或命名空间名称
【发布时间】:2016-10-05 16:57:17
【问题描述】:

我是 Visual C++ 的新手。我有两个独立的项目(我们称第一个 Converter 和第二个 TreeGridView)。我在 Converter 项目中有这行代码:

private: AdvancedDataGridView::TreeGridView^ treeGridView;

在“AdvancedDataGridView”上引发此错误:

name followed by '::' must be a class or namespace name

我想我理解错误 - Visual C++ 找不到名为“AdvancedDataGridView”的类或命名空间,对吗?

我有一个名为 TreeGridView 的单独 Visual Studio 项目,其中包含 3 个 C# 项目。其中一个项目的程序集名称为“ExpandableGridView”,默认命名空间为“AdvancedDataGridView”,输出类型为类库。另一个项目的程序集名称为 AdvancedDataGridView,默认命名空间为 AdvancedDataGridView,输出类型为 Windows 应用程序。

作为 Visual C++ 和我正在使用的代码库的新手,我不确定如何消除错误。 TreeGridView 项目(具有 3 个 c# 项目的项目)确实生成了一个 ExpandableGridView.dll 文件,我在我的 Converter 项目中添加了对其的引用,但错误仍然存​​在。 Intellisense 根本找不到 AdvancedDataGridView。有任何想法吗?

其他信息:添加 ExpandableGridView.dll 作为参考时,我在参考上看到一个黄色警告三角形图标,属性中显示“完整路径”

 The "Microsoft.VisualStudio.ProjectSystem.References.UnresolvedAssemblyReference" reference
 could not be resolved.

【问题讨论】:

  • 这真的是c++ 而不是c++-cli?
  • @drescherjm - 不确定 - 有没有办法告诉?我没有编写我目前使用的这个代码库。
  • 您似乎在使用某种形式的托管 c++。
  • 语法TreeGridView^ treeGridView 不是有效的C++ 变量声明;它是 C# 或 C++-CLI。
  • 绝对不是 C++。我删除了那个标签。我不记得它实际上是哪种语言。

标签: visual-studio visual-c++ gridview


【解决方案1】:

解决了。我有两个对同一个 ExpandableGridView dll 文件的引用——删除了它们,然后再次添加了最新的 dll——之后我上面提到的错误和警告就消失了。

【讨论】:

    【解决方案2】:

    您正在尝试对类型与变量进行异或?指针使用type* 声明,而不是type^。

    有关 C 和 C++ 指针的教程,请参阅 http://www.cplusplus.com/doc/tutorial/pointers/。

    【讨论】:

    • 还有其他语言 C++/something 带有“托管指针”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    • 2020-02-02
    • 2017-07-11
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多