اگر وارد Visual C++ شوید و برای مثال بخواهید از یک TextBox مقداری را بگیرید، ممکن است بخواهید مقدار را به string موجود در کتابخانه استاندارد سیپلاسپلاس تبدیل کنید و سپس آن را به String دات نت بازگردانید! برای انجام اینکار، دو تابع را آماده کردهایم.
تبدیل std::string به System::Strinig
تابع زیر را در پروژهی خود بنویسید:
#include <string> System::String^ toSystemString(std::string value) { return gcnew String(value.c_str()); }
مثال: فرض کنید میخواهیم متنی را در MessageBox نمایش دهیم که از std::string قرار است گرفته شود:
std::string test = "salam"; MessageBox::Show(this->toSystemString(test));
تبدیل System::string به std::string
تابع زیر را در پروژهی خود بنویسید:
#include <string> #include <msclr\marshal_cppstd.h> std::string toStdString(System::String^ value) { msclr::interop::marshal_context context; return context.marshal_as<std::string>(value); }
مثال: فرض کنید از TexBox متن را گرفته و سپس به std::string تبدیل میکنیم:
System::String^ text = textBox1->Text; std::string stdString = toStdString(text);
نظرات ثبت شده بدون دیدگاه