gpt4 book ai didi

windows-8 - C++/CX:Platform::String 与 std::wstring

转载 作者:行者123 更新时间:2023-12-02 22:31:43 24 4
gpt4 key购买 nike

C++/CX 似乎没有 StringBuilder 类或等效类,所以我认为我们要使用 STL 来实现此目的?

这是我的第一个 C++/CX 应用程序。用户在 TextBox 中输入一些文本,点击 ENTER 按钮,文本将被附加到 TextBlock“控制台”。这段代码确实有效,但最佳实践是什么?

public ref class MainPage sealed
{
public:
MainPage();

protected:
virtual void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
private:
std::wstring _commandLine;
std::wstring _consoleText;
void Button_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
};

...

void HelloConsole::MainPage::Button_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
this->_commandLine = this->InputLine->Text->Data();
this->_commandLine.append(L"\n");
this->_consoleText += this->_commandLine;
this->InputLine->Text = "";
this->OutputConsole->Text = ref new Platform::String(_consoleText.c_str());
}

最佳答案

It seems that C++/CX does not have a StringBuilder class, or equivalent, so I take it we are to be using STL for this?

是的,一般来说,您应该更喜欢在 C++ 代码中使用 C++ 类型。仅在必须的地方使用 Windows 运行时类型(例如 Platform::String),例如跨 ABI 边界或跨组件边界传递数据时。

代码片段中的字符串处理看起来很好 - 复制到 std::wstring 进行突变是合理的。

关于windows-8 - C++/CX:Platform::String 与 std::wstring,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13536703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com