![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Mastkir |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 11.5.2006 Репутация: нет Всего: нет |
Доброго дня!
1) Есть переменная System::String^. Как ее преобразовать в char* (Пишу на С++ .Net, но использую библиотеку, написанную на VС++, без .Net) 2) Есть переменная типа int. Как ее преобразовать в System::String^, но таким образом, чтобы в System::String^ содержалось это-же число, но в 16-ричной системе (т.е.) 10 - это A, 11 - B, 255 - FF. Ну и обратное преобразование мне тоже нужно (т.е. из System::String^, содержащей число в 16-ричной системе, получить int с 10-системе исчесления). Спасибо! |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
1) метод ToCharArray поможет
2) пример на шарпе:
З.Ы. у C++/CLI очень уж зубодробительный синтаксис, ниасилил, звиняйте -------------------- ![]() |
|||
|
||||
| Mastkir |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 11.5.2006 Репутация: нет Всего: нет |
ToCharArray позволяет получить array<Char>^. Но как мне это в char* перевести - я чего-то не понимаю |
|||
|
||||
| mr.DUDA |
|
||||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Попытка №2
Простое решение выглядит так:
Но строки в .NET в юникоде, поэтому буфер будет содержать 3 двухбайтовых значения (три слова), с кодами символов A, B и C. Это нам не подходит ? Нужны именно "обычные" char-ы, которые по байту каждый ? Тогда действуем так:
-------------------- ![]() |
||||
|
|||||
| Mastkir |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 11.5.2006 Репутация: нет Всего: нет |
Спасибо за столь подробные ответы. Скажи еще пожалуйста, как char* преобразовать в String^ ? (ну тоесть, обратно) Пробовал использовать Encoding::ASCII->GetString(), но туда на вход нужно cli::array<unsigned char,1> ^bytes. Не понимаю, как мне это из char* сделать. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Так же как из cli::array делается char*, то есть создаём cli::array-массив на столько элементов, сколько символов в строке (можно strlen-ом узнать), и копируем с пом. Marshal::Copy в cli::array, потом дёргаем GetString. -------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |