错误C2039:'Collections':不是'Windows :: Foundation'的成员

时间:2013-12-20 23:11:53

标签: c# c++ windows-runtime

这是令人尴尬的,我知道它会因缺乏研究工作而显现出来。

我是一名非常熟练的C#程序员,在该领域拥有丰富的经验,但我想学习C ++,因为它在(例如)DirectX中开辟了一些非常有趣的机会。很长一段时间我都使用SharpDX进行模拟,但现在我想学习真正的交易。

所以我决定用C ++创建一个Windows Store DLL库。乍一看,C ++似乎有很多不同,但经过一些研究,我学会了.h.cpp文件的结构。现在对我来说似乎更容易管理。

但是,我遇到了引用方面的问题。

我想让一个类继承自Control(在XAML中)。我想我必须导入适当的库,并且C ++中的引用系统库必须通过代码文件本身完成(可能是因为链接过程?)。

Graph.h

#pragma once

#include <wrl.h>

#include <windows.foundation.h>
#include <windows.foundation.collections.h>

#include <windows.ui.h>
#include <windows.ui.xaml.h>
#include <windows.ui.xaml.controls.h>

#include "pch.h"

namespace Techmatic_FunctionGraph
{
    public ref class Graph sealed : public Windows::UI::Xaml::Controls::Control
    {
    public:
        Graph();
    }
}


Graph.cpp

#include "pch.h"
#include "Graph.h"

#include <windows.foundation.h>
#include <windows.foundation.collections.h>

#include <windows.ui.h>
#include <windows.ui.xaml.h>
#include <windows.ui.xaml.controls.h>

using namespace Techmatic_FunctionGraph;

using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Data;
using namespace Windows::UI::Xaml::Documents;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Interop;
using namespace Windows::UI::Xaml::Media;

using namespace Windows::UI::Xaml::Media::Imaging;

using namespace Microsoft::WRL;

Techmatic_FunctionGraph::Graph()
{
}

但是,我收到的错误是using namespace Windows::Foundation::Collections;不是正确的命名空间或类名。

你可能已经看到我几乎只是在失明中摸索。我试过Googling“C ++引用Windows :: Foundation :: Collections”和其他查询而没有运气。

任何人都可以帮助我理解我在这里缺少的东西,或者指导我朝正确的方向前进吗?

2 个答案:

答案 0 :(得分:3)

在项目设置中,确保将“消耗Windows运行时扩展”设置为“是(/ ZW)”,我认为这就是您所需要的。

enter image description here

答案 1 :(得分:2)

你试试这种方式吗?

#include <collection.h>

Link