CString strTest = "Hello, World";
System::String ^ strTest2 = gcnew System::String( (LPCTSTR)strTest );
Конвертация обектов^ к м... обычным
Некоторые объекты требуют чтобы их объявляли с ^ (что это такое, я вообще не знаю и впервые вижу, так как впервые пишу прогу с нуля на VC++, а не исправляю чужие)
собственно у меня большая проблема. Как к примеру сконвертировать String^ к std::string? Обратно? String^ к char[]? std::string к Object^?
Цитата:
Declares a handle to an object on the managed heap.
A handle to an object on the managed heap points to the "whole" object, and not to a member of the object.
See gcnew for information on how to create an object on the managed heap.
Если я пытаюсь объявить нормальные объекты, то мне вот что пишут:
error C3149: 'System::String' : cannot use this type here without a top-level '^'
Даже все методы типа GetString(), ToString() возвращают именно этот ужас с ^
А как сконвертировать-то его? Вот я хочу из текст бокса перевести текст в std::string
textBox2->Text возвращает String^ и что делать?
Естественно просто приравнять их не катит. ругается что нельзя так делать с объектами высшего уровня %)
массив char'ов
в int можно сконвертироватьс помощью Int32::Parse(String^ s)
по поводу конвертированя в
в int можно сконвертироватьс помощью Int32::Parse(String^ s)
Благодарю, то что надо. Проблема решена (надеюсь не получу за это сообщение предупреждение. Во всяком случае же надо сообщить другим людям что помощь больше не требуется, да и добавить репутацию не получается почему-то. Пишет что я должен добавить ее кому-то другому, перед тем как смогу снова добавить ее для lifs, хоть уже сто лет прошло с того момента, как я добавлял ее ему)
Вроде бы, банальный метод System::Convert::ToString должен работать, да предупреждение
"'const wchar_t *' : forcing value to bool 'true' or 'false' (performance warning)"
все портит. Эта функция действительно возвращает "true". Что нужно сделать, что получить строку типа System::String^ ?
Код:
Цитата: Cybernetic
А как можно осуществить конвертацию из ATL::CString в System::String^ ?
Вроде бы, банальный метод System::Convert::ToString должен работать, да предупреждение
"'const wchar_t *' : forcing value to bool 'true' or 'false' (performance warning)"
все портит. Эта функция действительно возвращает "true". Что нужно сделать, что получить строку типа System::String^ ?
Вроде бы, банальный метод System::Convert::ToString должен работать, да предупреждение
"'const wchar_t *' : forcing value to bool 'true' or 'false' (performance warning)"
все портит. Эта функция действительно возвращает "true". Что нужно сделать, что получить строку типа System::String^ ?
Код:
System::String ^str = gcnew System::String(atlCstring.GetString());
Код:
CString strTest = "Hello, World";
System::String ^ strTest2 = gcnew System::String( (LPCTSTR)strTest );
System::String ^ strTest2 = gcnew System::String( (LPCTSTR)strTest );
[QUOTE=lifs]
Код:
System::String ^str = gcnew System::String(atlCstring.GetString());
Спасибо, товарищи, оба варианта работают)) Вобщем то, как я понял, здесь главное оператор gcnew, который создает новый объект... Про него то я и не знал.