Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> System Object to String 
V
    Опции темы
Mr_Nuke
Дата 10.6.2012, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всем привет еще раз! По мере написания курсовой появляются вопросы smile

Короче, задача вот в чем, есть таблица dataGridView, в ячейке записан путь к изображению. Надо это изображние загрузить в pictureBox

pictureBox2->Image = Image::FromFile(); принимает на вход стоку. 

dataGridView1->Rows[ e->RowIndex ]->Cells[ 1 ]->Value - возвращает System Object. 

По совету гугла пробовал такие танцы:

Код

pictureBox2->Image = Image::FromFile((string)dataGridView1->Rows[ e->RowIndex ]->Cells[ 1 ]->Value);

или хотя бы перевод в строку
Код

string ss = Convert.ToString(dataGridView1->Rows[ e->RowIndex ]->Cells[ 1 ]->Value);

Код

string ss = (dataGridView1->Rows[ e->RowIndex ]->Cells[ 1 ]->Value).ToString();


Код

IntPtr p = Marshal::StringToHGlobalAnsi(dataGridView1->Rows[ e->RowIndex ]->Cells[ 1 ]->Value);
char *pNewCharStr = static_cast<char*>(p.ToPointer());
pictureBox2->Image = Image::FromFile(pNewCharStr);


PM MAIL   Вверх
sergioK1
Дата 10.6.2012, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Mr_Nuke @ 10.6.2012,  12:59)
Всем привет еще раз! По мере написания курсовой появляются вопросы smile

Короче, задача вот в чем, есть таблица dataGridView, в ячейке записан путь к изображению. Надо это изображние загрузить в pictureBox

Короче  телепаты в отпуске smile  ,  cмотреть в документацию библиотеки,
к С++ общие вопросы это не относиться ,IMHO 
PM MAIL   Вверх
magesi
Дата 11.6.2012, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -4
Всего: -4



Mr_Nuke, может просто путь к файлу/имя файла при преобразовании в string получается "неверное" или просто файла такого нет?  smile Вы это проверяли?
PM MAIL   Вверх
mes
Дата 12.6.2012, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(sergioK1 @  10.6.2012,  19:53 Найти цитируемый пост)
к С++ общие вопросы это не относиться ,IMHO  

и к тому же попахиваает cli/.net


--------------------
PM MAIL WWW   Вверх
magesi
  Дата 12.6.2012, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -4
Всего: -4



Цитата(mes @ 12.6.2012,  21:42)
Цитата(sergioK1 @  10.6.2012,  19:53 Найти цитируемый пост)
к С++ общие вопросы это не относиться ,IMHO  

и к тому же попахиваает cli/.net

Оно самое и есть. Мне только интересно, как всякие reinterpret_cast<T>, static, dynamic, const уживаются с managed кодом  smile 
PM MAIL   Вверх
sergioK1
Дата 12.6.2012, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(magesi @ 12.6.2012,  20:50)
Мне только интересно, как всякие reinterpret_cast<T>, static, dynamic, const уживаются с managed кодом  smile

Какая между ними связь? 

Никогда не мог понять зачем С++ и  gc . 
PM MAIL   Вверх
magesi
  Дата 12.6.2012, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -4
Всего: -4



Цитата(sergioK1 @  12.6.2012,  22:35 Найти цитируемый пост)
Какая между ними связь? 

Вот, мне это тоже интересно, судя по исходникам ТС smile

Хотя IntPtr - структура, может это и unmanaged в .net...
PM MAIL   Вверх
mes
Дата 12.6.2012, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

Репутация: 144
Всего: 250



Цитата(magesi @  12.6.2012,  20:50 Найти цитируемый пост)
 Мне только интересно, как всякие reinterpret_cast<T>, static, dynamic, const уживаются с managed кодом

с трудом уживаются.. 
Цитата(Mr_Nuke @  10.6.2012,  12:59 Найти цитируемый пост)
Короче, задача вот в чем, есть таблица dataGridView, в ячейке записан путь к изображению. Надо это изображние загрузить в pictureBox

и зачем тут примешивать неупрявляемый код ?!  приведите минимальный пример того из чего и что хотите получить, без всякой самодеятельности с кастами, может что и подскажем.. smile


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


Шустрый
*


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

Репутация: -4
Всего: -4



Цитата(mes @  12.6.2012,  23:35 Найти цитируемый пост)
приведите минимальный пример того из чего и что хотите получить, без всякой самодеятельности с кастами, может что и подскажем..

судя по его коду, у него объект - dataGridView

через ->Rows[ e->RowIndex ]->Cells[ 1 ]->Value , он берет Value параметр

и хочется загрузить его с помощью FromFile(string)

Я на .net давно не сидел.... но если мне не изменяет память dataGridView - это графичечкая таблица из System.Windows.Forms

Надо смотреть , что у него в Value, сам путь к Image, который грузиться надо или уже готовый объект Image 

я уже все перезабыл, но чувствую, что именно здесь трабла... что либо путь неверный, то ли вообще не путь берет, а др. какой-то объект и пытается привести его к string, а там абракадабра небось и совсем не путь к Image

интересно... ему какие-нибудь exception выдает? ничего не написал про это...

ps
но unmanaged код , конечно же, тут в доску не нужен...

Это сообщение отредактировал(а) magesi - 12.6.2012, 23:50
PM MAIL   Вверх
Mr_Nuke
Дата 16.6.2012, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Чудеса. Разобрался потом сам. Про эту тему забыл, со временем забыл и про то, что я вообще это делал  smile  По гуглу наткнулся на свой пост. Вспомнил, улыбнулся!

Цитата

и к тому же попахиваает cli/.net

C технологиями я не очень, так что извиняйте 

Цитата(mes @  12.6.2012,  23:35 Найти цитируемый пост)
приведите минимальный пример того из чего и что хотите получить

Ну так в первом же посте вроде описано по минималке. Есть таблица, значения в которой - пути к графическим файлам. Надо, что б по клику на ячейке, загружалось в picturebox изображение с путем, прописанным в соответствующей ячейке. 


Цитата(magesi @  12.6.2012,  23:44 Найти цитируемый пост)
ему какие-нибудь exception выдает? ничего не написал про это...

Код не компилировался! Говорит, что не может преобразовать system::object в system::string

О решении проблемы. 
Преобразование system::object to system::String
Код

Convert::ToString( dataGridView1->Rows[i]->Cells[1]->Value)


Преобразование system::object to char *

Код

char* systemStringToChar(String^ myString){
    IntPtr p = Marshal::StringToHGlobalAnsi(myString);
    char *pNewCharStr = static_cast<char*>(p.ToPointer());
    return (pNewCharStr);
}

char *buf = systemStringToChar(Convert::ToString( dataGridView1->Rows[i]->Cells[1]->Value));


Проблема решена! 

Это сообщение отредактировал(а) Mr_Nuke - 16.6.2012, 21:33
PM MAIL   Вверх
boostcoder
Дата 16.6.2012, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

Репутация: 49
Всего: 110



Вы разделом ошиблись. это не с++.

PM WWW   Вверх
Randajad
Дата 17.6.2012, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Это сколько надо выпить, чтобы свои темы гуглом искать...
PM MAIL   Вверх
Mr_Nuke
Дата 17.6.2012, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(boostcoder @  16.6.2012,  21:38 Найти цитируемый пост)
Вы разделом ошиблись. это не с++.

Были комментарии, что это managed c++? Можно разницу на пальцах?

С++ с работой на форме = managed c++?


Цитата
Это сколько надо выпить, чтобы свои темы гуглом искать...


 smile  smile Достаточно просто переботать  smile 
PM MAIL   Вверх
magesi
Дата 18.6.2012, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -4
Всего: -4



Цитата(Mr_Nuke @  17.6.2012,  21:54 Найти цитируемый пост)
С++ с работой на форме = managed c++?

что значит работа на форме?

форма может быть тоже нативной Win32, а может с прослойками от .net 

Managed C++ - это для .NET/CLR , там все другое


Цитата(Mr_Nuke @  17.6.2012,  21:54 Найти цитируемый пост)
Можно разницу на пальцах?

Нет. Потому что разница существенная

PS
По поводу Вашего кода, Ваша проблема в сотни раз проще решается, зачем такой изврат с преобразованиями?
PM MAIL   Вверх
Mr_Nuke
Дата 18.6.2012, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(magesi @  18.6.2012,  00:13 Найти цитируемый пост)
там все другое

Пока я не заметил, что бы что-то было другое  smile Так в какой мне раздел писать, если это не с++?

Цитата

По поводу Вашего кода, Ваша проблема в сотни раз проще решается, зачем такой изврат с преобразованиями?

Причина весьма проста - не было найдено решения проще. Раскроешь тайну?) 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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