以 C++ 形式打印日期和时间

Print Date and Time in a form C++

你能解决我的问题吗? 我在 my Form 中有一个 text 字段。我想在字符串中打印日期和时间,我的意思是,光标所在的位置。

我得到这个 class 为此:

#include <Windows.h>
//Russian letters are okay for this
private: System::Void времяИДатаToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {


    SYSTEMTIME sys_t;
    GetSystemTime(&sys_t);
    char szFormat[] = "MMMM";
    char Buffer[16];
    sys_t.wMonth = 1; 
    GetDateFormat(LOCALE_USER_DEFAULT, 0, &sys_t, szFormat, Buffer, 256);
}
};

我想使用 MessageBox::Show() ,但这不是我的问题吗? 你能为此提供一些建议吗?

谢谢。

假设您的文本字段名为 textField,请使用:

textField->Text = new string(Buffer);

另外,你打给

GetDateFormat(LOCALE_USER_DEFAULT, 0, &sys_t, szFormat, Buffer, 256);

错了。传递 16,而不是 256 作为最后一个参数(因为您声明 Buffer 有 16 个字符)。

标准警告:虽然可以使用 C++/CLI 编写应用程序的主体,甚至可以使用 WinForms 在 C++/CLI 中编写 GUI,但不推荐这样做。 C++/CLI 适用于互操作场景:在 C# 或其他 .Net 代码需要与非托管 C++ 交互的情况下,C++/CLI 可以提供两者之间的转换。对于初级开发,如果需要托管代码,建议使用 C# 和 WinForms 或 WPF,如果需要非托管代码,建议使用 C++ 和 MFC。

好的,那是说:您已经获得了完整的 .Net 库,为什么不使用它呢?

void времяИДатаToolStripMenuItem_Click(Object^ sender, EventArgs^ e)
{
    DateTime now = DateTime::Now;
    String^ dateString = now.ToString("MMMM");
}