【发布时间】:2017-06-20 09:50:06
【问题描述】:
我正在使用 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();
}));
}
是否有模板可用于创建 true 空白 UWP 项目?
【问题讨论】:
-
C++/Cx,已更正
-
如果您需要准系统 UWP 应用程序,请不要使用项目向导来创建。这要求你知道,你在做什么。使用 C++/WinRT 可能更容易。见C++ - Introducing C++/WinRT。
-
我也试过不使用向导,它工作正常。问题是在执行结束时出现一个错误,说我的“应用程序未激活”
-
你专注于你的终极目标,你遇到的每一个问题对你来说都是同一个问题。它不是。到目前为止,您已经陈述了 2 个不同 问题:
1创建 UWP 应用程序会产生过多的自动生成代码。2运行准系统 UWP 应用程序会出现运行时错误。这些是不同的问题。如果您不想要自动生成的代码,请不要使用 C++/CX。您可以将 C++ 与 WRL 或 C++/WinRT 结合使用。除此之外,还必须部署和注册 UWP 应用程序(并且系统准备好进行旁加载)。
标签: uwp visual-studio-2017 c++-cx