在C ++ / CLI中无法识别名称空间

时间:2011-07-14 16:21:10

标签: c# visual-studio-2010 namespaces c++-cli

我最近问了这个问题:create a namespace in c++/cli? 所以我试图在c ++ / cli中创建自己的命名空间。

但是当我在两个单独的文件(.cpp)中使用相同的命名空间时,显然不会将命名空间识别为相同,因为当我尝试引用另一个文件中的另一个类时,我会收到错误。

这基本上就是我所拥有的:

Pets.cpp:

namespace Animals
   {
   public ref class Pets 
     {
     public:
        List<Dog> ^vDogs;

     Pets::Pets()
        {
        vDogs = gcnew List<Dog^>();
        }

     void Pets::DoSomething()
        {
        }
     };
   }

Dog.cpp:

namespace Animals
   {
   public ref class Dog 
     {

     Dog::Dog()
        {
        }

     void Dog::DoSomething()
        {
        }
     };
   }

其他信息:

1)文件位于相同的文件夹

2)文件已添加到不同文件夹

中的现有解决方案中

3)我也在任一文件中尝试了using namespace Animals但是我收到错误,说明命名空间不存在。

4)我正在使用Visual Studio 2010(如果有人有办法解决,我需要在VS中做一些特定的事情)

所以我的问题是:为了识别命名空间,我需要做些什么?

请告诉我需要哪些其他信息才能解决问题。

提前感谢您的时间和耐心! :)

1 个答案:

答案 0 :(得分:5)

C ++ / CLI编译器坚持使用传统C和C ++编译器的构建模型。在一千万字节的记忆占用鞋盒的空间时制定。它是一个单程编译器,一次处理一个.cpp文件。使用链接器将位粘合在一起。

这意味着您必须使用传统的头文件来声明您的类和源代码文件顶部的#include指令以包含它。