【问题标题】:Error C2039: 'Collections': is not a member of 'Windows::Foundation'错误 C2039:“集合”:不是“Windows::Foundation”的成员
【发布时间】:2013-12-20 23:11:52
【问题描述】:

这很尴尬,我知道这会表现为缺乏研究工作。

我是一名非常熟练的 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; 不是正确的命名空间或类名。

如您所见,我几乎只是在失明中摸索。我试过谷歌搜索“C++ 参考 Windows::Foundation::Collections”和其他查询,但没有运气。

谁能帮助我了解我在这里缺少什么以继续前进,或引导我朝着正确的方向前进?

【问题讨论】:

  • 您是否正在使用 C++/CX 创建 Windows 应用商店应用程序?您可能不需要#include .h 文件。
  • 是的,我是。现在情况变得更糟,错误更多。
  • 你能分享你的项目吗?

标签: c# c++ windows-runtime


【解决方案1】:

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

【讨论】:

  • 就是这样!非常感谢!
【解决方案2】:

你会尝试这种方式吗?

#include <collection.h>

Link

【讨论】:

    猜你喜欢
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多