读书人

求教C++/CLI下的一个命名空间冲突有关

发布时间: 2012-03-14 12:01:13 作者: rapoo

求教C++/CLI下的一个命名空间冲突问题
.Net里有一个System namespace, 而Nebual3里也有一个. 它们在一起使用时会产生冲突, 如下:

这是纯C++的部分:

#pragma once
namespace Math
{
class Vector3
{
public:
float x, y, z;
};
}// namespace Math
namespace System
{
class NativeCpp
{
public:
NativeCpp()
{
position.x = 0;
position.y = 0;
position.z = 0;
}
private:
Math::Vector3 position;
};
}// namespace System


新建一个Console CLR Application:

// TestCLR.cpp : main project file.
#include "stdafx.h"
#include "NativeCpp.h"
using namespace System;
int main(array<System::String ^> ^args)
{
Console::WriteLine(L"Hello World");
NativeCpp native;
return 0;
}


编译会产生以下错误:

Error1error C2039: 'Vector3' : is not a member of 'System::Math'd:\documents\visual studio 2010\projects\testclr\testclr\NativeCpp.h281TestCLR


如果不改动native C++的部分, 怎么消除这个错误呢?


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xoyojank/archive/2010/09/20/5896036.aspx

[解决办法]
把你的空间名都带上system::math

读书人网 >VC

热点推荐