2013-12-20 65 views
2

這真是令人尷尬,我知道它會顯示爲缺乏研究工作。錯誤C2039:'Collections':不是'Windows :: Foundation'的成員

我是一位非常熟練的C#程序員,在該領域有豐富的經驗,但我想學習C++,因爲它在(例如)DirectX中打開了一些非常有趣的機會。很長一段時間,我用SharpDX來模擬相同的,但現在我想了解真正的交易。

因此,我決定在C++中創建一個Windows應用商店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」和其他查詢沒有運氣。

任何人都可以幫助我理解我在這裏錯過了什麼,繼續前進,或引導我走向正確的方向嗎?

+0

您是否在使用C++/CX創建Windows應用商店應用?你可能不需要'#inc'.h文件。 – kiewic

+0

是的,我是。現在事情變得更糟,更多的錯誤。 –

+0

你能分享你的項目嗎? – kiewic

回答

3

在您的項目設置,請確保您設置「消費Windows運行時擴展」爲「Yes(/ ZW)」,我認爲這是所有你需要的。

enter image description here

+0

就是這樣!謝謝一堆! –

0

你試試這種方式嗎?

#include <collections.h> 

Link

相關問題