错误C2653。在C ++中找不到类型或命名空间名称(Reference present)

时间:2014-02-22 11:17:40

标签: c++ vb.net reference

我试图给vb.net dll引用C ++ Project。我能够成功添加引用,但我无法在代码中使用它。

我有以下参考:

enter image description here

我想尝试使用它:

Configuration::MyClass::MyFunction()

我收到以下错误:

error C2653: 'Configuration' : is not a class or namespace name

我做错了什么?我是否需要添加头文件?

3 个答案:

答案 0 :(得分:2)

将此代码放在课程顶部

<ComVisible(True)> _
<Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")> _
<ClassInterface(ClassInterfaceType.None)> _

阅读这个帖子。我想这会对你有所帮助。 http://social.msdn.microsoft.com/Forums/en-US/3f30b414-2ea3-4a54-b4cb-24e48fdfda3e/calling-vbnet-dll-from-c?forum=vbgeneral

答案 1 :(得分:0)

确保已通过其'ComVisible'属性将组件暴露给COM子系统。然后,您应该注册程序集以将其公开给COM 'subscribers'

只有这样,您才能使用C ++代码中的程序集命名空间。

查看How to call a managed DLL from native Visual C++ code了解分步指南。

答案 2 :(得分:0)

一方面,根据this answer,它可能只是一个Visual Studio失败。

另一方面,the other answer suggests它可能是一个依赖问题。此外,您可能在不同的库中定义了两次相同名称的类。

无论如何,请考虑重新检查所有依赖项和Visual Studio设置。

这是关于该主题的another answer

UPD:检查您是否尝试定义复合命名空间,即illegal in C++