2012-06-24 67 views
2

您可以使用C++製作windows 8的metro應用程序嗎?我的意思是,沒有像gc和所有那些Windows編譯器特定的擴展名。我試過爲Windows 8開發搜索一些代碼,並且每個C++代碼示例都使用所有那些無用的Windows C++擴展。Windows 8開發可能與本機c + +?

+3

」相當無用的windows C++擴展「我很好奇;對他們來說究竟是「毫無用處」?考慮到它們隱藏的COM設置代碼的數量,它們對於其預期目的可能非常有用。 –

+2

C++/CX不是C++/CLI,並且沒有gc。 – Puppy

回答

6

你的問題基本上是關於你是否必須使用C++/CX擴展來編寫Metro應用程序。不,你不要要;所有的語言擴展都有語言上的類比。你可以將C++/CX擴展看作是Qt的預處理器設置魔法。所有C++/CX擴展都具有等效的純C++類似物。你可能明確地寫出來。

你只是不是真的想要來。 Metro API基於COM對象等等。所以你必須明確地處理COM接口,編組等等。

無論哪種方式,你正在編寫的代碼只能在Windows上工作。所以你也可以簡化自己,並在必要時使用語言擴展。 「

+0

謝謝,這個答案確實有助於與Metro應用相關的幾件事情! – weggo

+0

如果它只是隱藏COM,那麼爲什麼不使用ATL? – MSalters

+1

即使使用ATL,代碼仍然看起來很乏味。當然你可以使用它,有一個名爲Windows Runtime C++ Template Library的庫 http://msdn.microsoft.com/en-us/library/hh438466%28v=vs.110%29 – haohaolee

1

WinRT應用程序需要Windows特定的擴展,因爲它們運行在沙箱環境中。見http://msdn.microsoft.com/en-us/library/windows/apps/hh974580.aspx。您可以使用WinRT API與C++,C#和JavaScript。

它需要視覺工作室(最新)。

+0

那麼爲什麼所有這些例子都使用C++ windows特定擴展?例如partial ref class MainPage:public Windows :: UI :: Xaml :: Controls ::頁面 – weggo

+0

它是一個特殊的Windows API和環境;因此它需要特定的Windows代碼。 –

+0

所以這意味着你不能使用普通的ISO C++的Windows 8開發,但你需要使用那些無用的語言功能? – weggo

相關問題