简体   繁体   English

如何在 C++ Winui 应用程序中将 winrt::hstring 转换为 int?

[英]How to convert winrt::hstring to int in C++ Winui application?

I have used the template called Blank App, Package (Winui 3 in desktop) inside Visual Studio.我在 Visual Studio 中使用了名为Blank App, Package (Winui 3 in desktop)的模板。 I want to make a really simple function which add 2 value together.我想做一个非常简单的 function 将 2 个值加在一起。 This is what the application looks like.这就是应用程序的样子。

在此处输入图像描述

This is the XAML code:这是 XAML 代码:

<StackPanel>
    <TextBox x:Name="Box1" PlaceholderText="First number"></TextBox>
    <TextBox x:Name="Box2" PlaceholderText="Second number"></TextBox>

    <Button x:Name="myButton" Click="myButton_Click">Calculate</Button>
    <TextBlock x:Name="answer"></TextBlock>
</StackPanel>

This is the code in C#.这是 C# 中的代码。

private void myButton_Click(object sender, RoutedEventArgs e)
{
    int number1 = Convert.ToInt32(Box1.Text);
    int number2 = Convert.ToInt32(Box2.Text);
    int sum = number1 + number2;
    answer.Text = sum.ToString();
}

Everything is good in C# but when I moved to C++. C# 中的一切都很好,但是当我搬到 C++ 时。 I got some type error which winrt::hstring cannot be convert to int.我遇到了一些类型错误,winrt::hstring 无法转换为 int。 Below is the C++ code下面是 C++ 代码

This code got problem
void MainWindow::myButton_Click(IInspectable const&, RoutedEventArgs const&)
{
    int number1 = stoi(Box1().Text());
    int number2 = stoi(Box2().Text());
    int sum = number1 + number2;
    answer().Text(L"");
}

I found a method.我找到了一个方法。

std::string number_1 = winrt::to_string(Box1().Text());
std::string number_2 = winrt::to_string(Box2().Text());

int number1 = stoi(number_1);
int number2 = stoi(number_2);
int sum = number1 + number2;
winrt::hstring h_string_sum = winrt::to_hstring(sum);

answer().Text(h_string_sum);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM