创建一个最小的Hello World UWP应用程序

创建一个最小的Hello World UWP应用程序,uwp,visual-studio-2017,c++-cx,Uwp,Visual Studio 2017,C++ Cx,我正在使用Visual Studio 2017创建一个简单的C++/Cx通用Windows平台应用程序。我需要从头开始,不要穿任何华丽的衣服 当我创建一个新的“空白”项目时,我得到了2个XAML文件(每个文件都链接了.cpp和.h文件)和一个充满生成代码的目录。其中一些文件甚至是在第一次编译之后生成的。对于我的情况,这是不合适的,我希望有一个main()函数,具有尽可能少的代码来运行Hello World应用程序,而不需要自动生成代码 在其中一个生成的文件(App.g.hpp)中,我找到了mai

我正在使用Visual Studio 2017创建一个简单的C++/Cx通用Windows平台应用程序。我需要从头开始,不要穿任何华丽的衣服

当我创建一个新的“空白”项目时,我得到了2个
XAML
文件(每个文件都链接了
.cpp
.h
文件)和一个充满生成代码的目录。其中一些文件甚至是在第一次编译之后生成的。对于我的情况,这是不合适的,我希望有一个
main()
函数,具有尽可能少的代码来运行Hello World应用程序,而不需要自动生成代码

在其中一个生成的文件(
App.g.hpp
)中,我找到了
main()
方法,但我没有找到在未生成的文件中编写自己的方法:

int __cdecl main(::Platform::Array<::Platform::String^>^ args)
{
    (void)args; // Unused parameter
    ::Windows::UI::Xaml::Application::Start(ref new ::Windows::UI::Xaml::ApplicationInitializationCallback(
        [](::Windows::UI::Xaml::ApplicationInitializationCallbackParams^ p) {
            (void)p; // Unused parameter
            auto app = ref new ::MinimalUWP::App();
        }));
}
int\uu cdecl main(::平台::数组^args)
{
(void)args;//未使用的参数
::Windows::UI::Xaml::Application::Start(参考新::Windows::UI::Xaml::ApplicationInitializationCallback(
[](::Windows::UI::Xaml::ApplicationInitializationCallbackParams ^p){
(void)p;//未使用的参数
auto-app=ref-new::MinimalUWP::app();
}));
}

是否有一个模板可用于创建一个真实的空白UWP项目?

我最终用以下代码自己解决了这个问题:

ref class UwpApp : public ::Windows::UI::Xaml::Application
{
protected:
   virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) override
   {
      // Use e->Arguments as main arguments
   }
};

int __cdecl main(::Platform::Array<::Platform::String^>^ args)
{
   ::Windows::UI::Xaml::Application::Start(ref new ::Windows::UI::Xaml::ApplicationInitializationCallback(
      [](::Windows::UI::Xaml::ApplicationInitializationCallbackParams^ p) {
      auto app = ref new UwpApp();
   }));
}
ref类UwpApp:public::Windows::UI::Xaml::Application
{
受保护的:
虚拟void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs ^e)重写
{
//使用e->Arguments作为主参数
}
};
int\uu cdecl main(::平台::数组^args)
{
::Windows::UI::Xaml::Application::Start(参考新::Windows::UI::Xaml::ApplicationInitializationCallback(
[](::Windows::UI::Xaml::ApplicationInitializationCallbackParams ^p){
自动应用=参考新的UWPAP();
}));
}

谢谢@IInspectable,最后我坚持使用C++/CX,它成功了

什么编程语言?问题已标记,代码使用.C++/Cx,更正如果需要裸体UWP应用程序,请不要使用项目向导创建。这要求你知道你在做什么。使用C++/WinRT可能更容易。看,我也试过不用向导,效果很好。问题是,在执行结束时,会出现一个错误,表示我的“应用程序未激活”,您专注于您的最终目标,并且您遇到的每个问题对您来说都是相同的问题。事实并非如此。到目前为止,您已经指出了两个不同的问题:
1
创建UWP应用程序会产生太多自动生成的代码<代码>2运行barebones UWP应用程序时出现运行时错误。这些是不同的问题。如果不希望自动生成代码,请不要使用C++/CX。你可以使用WRL或C++ +WRET C++。除此之外,还必须部署和注册UWP应用程序(并且系统已准备好进行侧向加载)。请注意,目前不支持控制台输出。您可以调用
OutputDebugString(“Hello,world”)
,但它永远不会显示给普通用户。你申请的最终目的是什么?