Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Преобразование типов, помогите, а то меня прибьют

373
28 ноября 2004 года
unmoved
216 / / 28.11.2004
У меня есть Элемент на форме textbox, он возвращает тип ,что-то типа System::String*, как мне сделать из него integer, пробовал StrToInt, atoi -все они должны иметь другой тип строки, помогите!!!!!!
368
28 ноября 2004 года
rostyslav
629 / / 13.07.2004
int i = atoi((LPCTSTR)имя_переменной);
262
29 ноября 2004 года
Iktomy
1.2K / / 11.10.2004
А CString::Format("параметры как у printf") не пробовал?
373
30 ноября 2004 года
unmoved
216 / / 28.11.2004
И так мужики есть следующая строчка:
String* buf;
buf = ListBox2->SelectedItem->ToString();
int i = atoi((LPCTSTR)buf);

Выдается следующая ошибка преобразования типа:
test(wood) error C2440: 'type cast' : cannot convert from 'System::String __gc *' to 'LPCTSTR'

Так вот ситуация просто банальная надо из переменной типа System::String __gc * сделать переменную типа int
3
30 ноября 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by unmoved
И так мужики есть следующая строчка:
String* buf;
buf = ListBox2->SelectedItem->ToString();
int i = atoi((LPCTSTR)buf);

Выдается следующая ошибка преобразования типа:
test(wood) error C2440: 'type cast' : cannot convert from 'System::String __gc *' to 'LPCTSTR'

Так вот ситуация просто банальная надо из переменной типа System::String __gc * сделать переменную типа int



А что за тип String?
CString, std::string?

Ну а если покопаться в форуме?
Можно найти такое:

 
Код:
template<typename T>
T fromString(const std::string& s)
{
    std::istringstream iss(s);
    T res;
    iss >> res;
    return res;
}

Если даже это не std::string, то тип аргумента никто не мешает изменить, например, на const char*
8.9K
30 ноября 2004 года
Siro
8 / / 24.11.2004
Цитата:
Originally posted by unmoved
И так мужики есть следующая строчка:
String* buf;
buf = ListBox2->SelectedItem->ToString();
int i = atoi((LPCTSTR)buf);

Выдается следующая ошибка преобразования типа:
test(wood) error C2440: 'type cast' : cannot convert from 'System::String __gc *' to 'LPCTSTR'

Так вот ситуация просто банальная надо из переменной типа System::String __gc * сделать переменную типа int


Че то я не понял. Список инциалзируется в программе и пользователь сам туды добавить ничего не сможет. Так нафиг те че то преобразовывать есл известно какие элементы у тя в списке.

368
30 ноября 2004 года
rostyslav
629 / / 13.07.2004
int i = buf->ToInt32();
373
30 ноября 2004 года
unmoved
216 / / 28.11.2004
И так тип String - это стандартный класс С++.
Да действительно, список задается в программе, но мне все равно нужну получить целый тип значения который выберет пользователь в противном случаи я замучаюсь писать условия(там довольно мно значений).
Если написать что-то типа этого:
int i = buf->ToInt32();

Выведется следующая ошибка:

test(wood) error C2660: 'System::IConvertible::ToInt32' : function does not take 0 arguments

Ну не ужели меня ни кто не понимает, я использую МС7 из пакета Visual Studio 8.0
3
30 ноября 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by unmoved

И так тип String - это стандартный класс С++.


Перерыл весь стандарт, такого "стандартного класса" не нашел.
По сему заявляю, что нет такого "стандартного класса" в С++.

Так о каком классе идет речь?

Ты случаем не .NET ли насилуешь? :)

2.0K
30 ноября 2004 года
Bigzone
49 / / 18.08.2004
int i;
CStrung str;

itoa( i, str.GetBuffer( sizeof(int) ), 10 );
//int в String

i = atoi(str);
// String в int
368
30 ноября 2004 года
rostyslav
629 / / 13.07.2004
int i = buf->ToInt32(NULL);
527
30 ноября 2004 года
pavor
275 / / 28.09.2003
Цитата:
Originally posted by unmoved
И так мужики есть следующая строчка:
String* buf;
buf = ListBox2->SelectedItem->ToString();
int i = atoi((LPCTSTR)buf);

Выдается следующая ошибка преобразования типа:
test(wood) error C2440: 'type cast' : cannot convert from 'System::String __gc *' to 'LPCTSTR'

Так вот ситуация просто банальная надо из переменной типа System::String __gc * сделать переменную типа int


To Green смотреть надо было VSDN->.NET Framework->Reference->Class Library->namespace System->String.

В общем то, что интересует недвижимого:
Структура System::Int32
Метод
public: static int Parse(
String* s,
NumberStyles style,
IFormatProvider* provider
);
Использовать .NET так использовать его полностью, а не переключаться на CRT и STL без явной необходимости.

373
01 декабря 2004 года
unmoved
216 / / 28.11.2004
Всем спаисибо я решил задачу, особое спасибо Ростиславу...
Я пишу на Visual С++ из пакета Visual Studio 8.0 for NET. На счет стандартного класса подключается вот так
[COLOR=blue]#include <String>[/COLOR]
Я очень удивлюсь, что о нем ни кто ни знает.
3
01 декабря 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by unmoved
Всем спаисибо я решил задачу, особое спасибо Ростиславу...
Я пишу на Visual С++ из пакета Visual Studio 8.0 for NET. На счет стандартного класса подключается вот так
[COLOR=blue]#include <String>[/COLOR]
Я очень удивлюсь, что о нем ни кто ни знает.



Дело в том, что этот класс не является стандартным классом С++, так же как и CString и AnsiString и т.п.
Этот клас из .NET, а .NET не входит в стандарт С++.
.NET - относительно новая и весьма специфичная технология, поэтому кто-то ещё с ней не знаком в полной мере, а кому-то она совсем не нужна. Поэтому и мало кто знает о классе String, что не так удивительно, чем незнание С++ программистом стандартного класса std::string.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог