Форум программистов, компьютерный форум, киберфорум
C++/CLI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для cetrael
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93

String^ to char*

23.04.2012, 18:46. Показов 1789. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После открытия OpenFileDialog файла, его FileName имеет тип String^
Мне нужно использовать путь для открытия файла. Метод open string^ не принимает, все попытки кастов тщетны.

C++
1
2
3
                     IntPtr ptr = Marshal::StringToHGlobalAnsi(openFileDialog1->FileName);
                     char *path = (char*)ptr.ToPointer();
                     bmpfile.open(path, ios::in | ios::binary);
Нагуглил вот такой способ, через какие-то IntPtr и Marshal, которые я ещё ни разу не видел

Предложите какой-нибудь альтернативный вариант, может быть есть что-то проще? Или разъясните код.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.04.2012, 18:46
Ответы с готовыми решениями:

Преобразование между типами System::String, char*, wchar_t*, std::string и др.
При написании кода, взаимодействующего как с .NET и управляемым кодом, так и с неуправляемым кодом (такими как стандартные библиотеки C и...

Как string присвоить String? И как из string перевести в char[]?
Как string присвоить String? И как из string перевести в char?

String to char
Доброго времени суток. Подскажите из-за чего может писать ошибку и как её можно устранить? String ^ NickNameTextBox; NickNameTextBox =...

9
 Аватар для edward_jonson
163 / 163 / 68
Регистрация: 23.02.2011
Сообщений: 392
23.04.2012, 18:50
C++
1
OpenDialog1->FileName.c_str()
не подходит?
0
 Аватар для cetrael
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
23.04.2012, 18:54  [ТС]
Error 2 error C2228: left of '.c_str' must have class/struct/union
0
 Аватар для edward_jonson
163 / 163 / 68
Регистрация: 23.02.2011
Сообщений: 392
23.04.2012, 18:57
C++
1
 bmpfile.open(OpenDialog1->FileName.c_str(), ios::in | ios::binary);
Вы так пробовали? Вместо тех 3-х строк в вашем посте.
0
 Аватар для cetrael
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
23.04.2012, 19:06  [ТС]
Цитата Сообщение от edward_jonson Посмотреть сообщение
C++
1
 bmpfile.open(OpenDialog1->FileName.c_str(), ios::in | ios::binary);
Вы так пробовали? Вместо тех 3-х строк в вашем посте.
Да, я понял, что Вы имели в виду, но FileName не является классом/структурой/объединением, как говорит вижла
Не прокатывает си-стринг, к сожалению.
0
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
23.04.2012, 21:03
потому что вы смешиваете язык c++ с языком c++/CLI для платформы .NET, вопрос ЗАЧЕМ?
в .NET есть свои функции, почему бы вам не работать с ними???
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.04.2012, 21:13
C++
1
OpenDialog1->FileName.c_str()
edward_jonson,это ж не Builder вам...
0
 Аватар для cetrael
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
23.04.2012, 21:46  [ТС]
Цитата Сообщение от panicwassano Посмотреть сообщение
потому что вы смешиваете язык c++ с языком c++/CLI для платформы .NET, вопрос ЗАЧЕМ?
в .NET есть свои функции, почему бы вам не работать с ними???
Ох, я смешиваю то, что вижла советует. Создал проект Windows Forms c++ и понеслась.
Как мне на чистом с++ с окнами работать ещё?
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
23.04.2012, 21:58
Как string присвоить String? И как из string перевести в char[]?
1
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
23.04.2012, 22:05
Желательно писать расчеты на чистом стандартном С++, и только вывод/ввод осуществлять средствами IDE если преследуется переносимость и понятность кода для других людей.
В других случаях лучше использовать только средства IDE
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.04.2012, 22:05
Помогаю со студенческими работами здесь

char* в String^
Всем привет! мне нужно вывести на форму в текстовое окно массив char*, но при такой записи ...

Преобразование String в char*
Здравствуйте. Как можно преобразовать текст из textbox'a Windows Form к типу char? Пытался так:char host = ip->Text.c_str; Но компилятор...

Преобразование String^ в char*
Здравствуйте. У меня есть строка кода, принимающая массив символов char *ex = gets_s(buff, sizeof(buff)); Сейчас я добавляю...

char в System::String
к примеру есть: char a = "none"; и a = label5->Text; Для того чтобы label5 принял значение "a", нужно a перевести в...

Преобразование из String^ в char*
Доброго времени суток, господа и дамы! Возникла такая проблема с реализацией метода конвертации String^ в char* Собственно, сам код: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru