Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> std::string to System::string 
:(
    Опции темы
neic
Дата 4.7.2010, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Возникла такая ситуация что нужно из std::string перевести в System::string

Подскажите как это можно сделать.

PM MAIL WWW ICQ Skype   Вверх
ИванМ
Дата 4.7.2010, 23:31 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: нет
Всего: 23



Код

#include <string>
#include <iostream>

namespace System
{
    typedef std::string string;
}

int main()
{
    System::string str="123";
    std::cout<<str<<std::endl;
    system("pause");
}


PM MAIL   Вверх
neic
Дата 4.7.2010, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



ИванМ
Не получилось.

Я правильно сделал(?):
Код

...
namespace System
{
    typedef std::string string;
}
...
namespace GUI2 {
...
System::String name;
std::string name1;
name1 = (const char*) mas[0][0]; //из char в std:string
name = name1;

PM MAIL WWW ICQ Skype   Вверх
ИванМ
Дата 4.7.2010, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: нет
Всего: 23



Цитата(neic @  4.7.2010,  23:39 Найти цитируемый пост)
System::String name;

в C/C++ регистр имеет значение. Правильно:
Код

System::string name;

PM MAIL   Вверх
neic
Дата 4.7.2010, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Решил не много по другому:
Код

...
static System::String^ StdToSys(std::string StdStr){
    return gcnew System::String(StdStr.c_str());
}
...
std::string str;
str = (const char*) mas[0][0];
System::String ^name =StdToSys(str);

PM MAIL WWW ICQ Skype   Вверх
ИванМ
Дата 5.7.2010, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: нет
Всего: 23



neic, Managed C++ оказывается. Не понял сразу вопрос. А почему нельзя сказу перевести из char* в String^. Зачем вообще нужен std::string?

Это сообщение отредактировал(а) ИванМ - 5.7.2010, 00:04
PM MAIL   Вверх
neic
Дата 5.7.2010, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



ИванМ
Я думал, что напрямую нельзя. Не так давно изучаю язык, уже запутался с конвертированием.
PM MAIL WWW ICQ Skype   Вверх
ИванМ
Дата 5.7.2010, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1260
Регистрация: 19.6.2006
Где: СПб

Репутация: нет
Всего: 23



Код

char s[]="123";
System::String ^name=gcnew System::String(s);


Добавлено через 3 минуты и 52 секунды
На самом деле, когда пишут под .NET, стараются пользоваться по возможности только им. .NET довольно мощная библиотека, и в ней почти все есть. Остальными библиотеками, включая STL, пользуются только по необходимости.
PM MAIL   Вверх
mrbrooks
Дата 5.7.2010, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 17
Всего: 306



сами мягкотелые предлагают сию операцию делать так:

Код

#include <msclr\marshal.h>

using namespace System;
using namespace msclr::interop;

//...
   const char* str = "Hello CLR!";
   String^ Str = marshal_as<String^>(str);
//...


PM MAIL   Вверх
neic
Дата 5.7.2010, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 839
Регистрация: 28.1.2007

Репутация: нет
Всего: 7



Всем спасибо.
Думаю стоит сделать FAQ по конвертированию типов данных.
PM MAIL WWW ICQ Skype   Вверх
bsa
Дата 5.7.2010, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Цитата(neic @  5.7.2010,  11:12 Найти цитируемый пост)
Думаю стоит сделать FAQ по конвертированию типов данных. 
Думаю, стоит задавать вопросы в подходящих разделах. Данный раздел отношения к C# и C++/CLI НЕ ИМЕЕТ.

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1456 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.