قطعه کد تبدیل std::string به System::String دات نت در C++ و برعکس

اگر وارد 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);

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

cp-codfk

نظرات ثبت شده بدون دیدگاه

توضیحات پیشنهادی نظرات اشتراک