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

Ваш аккаунт

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

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

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

Добавление нового элемента в listBox

23K
07 декабря 2006 года
izyubr
3 / / 07.12.2006
Появилась такая проблема...

В программе есть структура вида:

typedef struct Day {
int ID;
char *Planet;
char *Chas;
}Day;

потом идёт инициализация...: Day.Planet="Mars" и т.д.

В итоге мне надо загнать это всё в ListBox... т.е. listBox->Items->Add(Day.Planet);

Он естественно ругается и пишет, 4то нельзя преобразовать char* в System::Object...

Вопрос... как можно преобразовать???
713
07 декабря 2006 года
Ap0k
360 / / 13.03.2006
Естественно не получится.
Ты пытаешься "прикрутить" неуправляемую строку к полностью управляемому объекту System::Windows::Forms::ListBox.
Сам на CLI не пишу, но кажется нужно использовать boxing (т.е. unmanaged-типы оборачивать в managed обертку).
Прикладываю статью, которая почему-то исчесзла с сайта RSDN. В ней ты найдёшь то, что тебе нужно... по крайней мере основы.
В целом, думается, что использование данной структуры в том виде как ты описал её не оправдано, ибо это можно сразу писать с использованием managed-классов, а там уже и DataBindings и т.д. и т.п. ;)
23K
07 декабря 2006 года
izyubr
3 / / 07.12.2006
Цитата: Ap0k
Естественно не получится.
Ты пытаешься "прикрутить" неуправляемую строку к полностью управляемому объекту System::Windows::Forms::ListBox.
Сам на CLI не пишу, но кажется нужно использовать boxing (т.е. unmanaged-типы оборачивать в managed обертку).
Прикладываю статью, которая почему-то исчесзла с сайта RSDN. В ней ты найдёшь то, что тебе нужно... по крайней мере основы.
В целом, думается, что использование данной структуры в том виде как ты описал её не оправдано, ибо это можно сразу писать с использованием managed-классов, а там уже и DataBindings и т.д. и т.п. ;)



Спасибо... большое... Я просто только начинаю пользоваться MC++... и чего-то неудачно... Эту статью я читал... но нужное пропустил... (

Новые вопросы:

1) __box - используется только для value-типов... (
2) Попытался использовать вместо структуры - управляемый класс (__gc) -> в общем вылезло, что надо использовать опцию /clr : old... Пытался настроить - не получилось... (да я и не особо старался, т.к. вылезло дофига ошибок, среди которых - непонятные мне "'Travi::Day' has no default indexed property (class indexer)"... ((
3) А нельзя как-нибудь забить в ListBox - 4ерез структуру?
т.е. подскажите как можно запихнуть набор букв, инициализированный в структуре в listbox???

Заранее спасибо... )

713
07 декабря 2006 года
Ap0k
360 / / 13.03.2006
Остановись пока не поздно и переходи на C#, иначе с твоим опытом подобные вопросы будут возникать уже на уровне Hello world.
Если не хочешь... то советую почитать спецификацию, в С++ CLI по другому объявляются переменные управляемых классов, и приведи код управляемого класса который ты хотел использовать, телепаты в отпуске до нового года :-)
23K
08 декабря 2006 года
izyubr
3 / / 07.12.2006
Цитата: Ap0k
Остановись пока не поздно и переходи на C#, иначе с твоим опытом подобные вопросы будут возникать уже на уровне Hello world.
Если не хочешь... то советую почитать спецификацию, в С++ CLI по другому объявляются переменные управляемых классов, и приведи код управляемого класса который ты хотел использовать, телепаты в отпуске до нового года :-)



ок... попробую то же самое на С#...)

Если что, придётся опять потревожить....)

273
09 декабря 2006 года
3A3-968M
1.2K / / 22.12.2005
Цитата: izyubr
ок... попробую то же самое на С#...)

Если что, придётся опять потревожить....)


На самом деле char* - поддерживаемый CLR тип данных (и никакого unmanaged). Просто на уровне C# он не реализован (за исключением void*, что то же самое что и IntPtr). Для того, чтобы преобразовать указатель в ссылку, используй оператор & языка C++. Или, как сказал Ap0k, применить ключевое слово __box. Есть ещё полезные методы Pointer.Box и Pointer.Unbox.

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