Форум программистов, компьютерный форум CyberForum.ru

Преобразование Char в System::String - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
CSIS119
2 / 2 / 0
Регистрация: 28.11.2012
Сообщений: 11
28.11.2012, 22:26     Преобразование Char в System::String #1
Здравствуйте!
Я пишу программу по типу монитора системных ресурсов. Название процессора решил взять из реестра. В консоли все прошло успешно, а вот в Windows Forms затрудняюсь с выводом в label.
C++
1
2
3
4
5
6
7
HKEY rKey;
        CHAR Reget[256];
        DWORD RegetPath=256;
            RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", NULL, KEY_QUERY_VALUE, &rKey);
            RegQueryValueEx(rKey,L"ProcessorNameString", NULL, NULL,(LPBYTE)&Reget, &RegetPath);
this->label8->Text = Reget;
this->label8->Text = ToCharArray(Reget);
Последние две строки это разные способы которыми я пробовал выводить информацию. После первого способа компилятор говорит, что невозможно Преобразование Char в System::String.
При использовании второго варианта говорит что не найден идентификатор ToCharArray.
Подскажите как быть.

Добавлено через 1 час 11 минут
попробовал еще один метод
C++
1
this->label8->Text =gcnew System::String( Reget);
выбило 5 ошибок:
Ошибка 3 error LNK2028: ссылка на неразрешенную лексему (0A0000A3) "extern "C" long __stdcall RegQueryValueExW(struct HKEY__ *,wchar_t const *,unsigned long *,unsigned long *,unsigned char *,unsigned long *)" (?RegQueryValueExW@@$$J224YGJPAUHKEY__@@PB_WPAK2PAE2@Z) в функции "private: void __clrcall monitor_sis_res::Form1::button3_Click_1(class System::Object ^,class System::EventArgs^)" (?button3_Click_1@Form1@monitor_sis_res@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) G:\КСиС\Курсовая 2012\Курсовая 2012\monitor_sis_res\monitor_sis_res\monitor_sis_res.obj

Ошибка 4 error LNK2028: ссылка на неразрешенную лексему (0A0000A4) "extern "C" long __stdcall RegOpenKeyExW(struct HKEY__ *,wchar_t const *,unsigned long,unsigned long,struct HKEY__ * *)" (?RegOpenKeyExW@@$$J220YGJPAUHKEY__@@PB_WKKPAPAU1@@Z) в функции "private: void __clrcall monitor_sis_res::Form1::button3_Click_1(class System::Object ^,class System::EventArgs ^)" (?button3_Click_1@Form1@monitor_sis_res@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) G:\КСиС\Курсовая 2012\Курсовая 2012\monitor_sis_res\monitor_sis_res\monitor_sis_res.obj


Ошибка 5 error LNK2019: ссылка на неразрешенный внешний символ "extern "C" long __stdcall RegQueryValueExW(struct HKEY__ *,wchar_t const *,unsigned long *,unsigned long *,unsigned char *,unsigned long *)" (?RegQueryValueExW@@$$J224YGJPAUHKEY__@@PB_WPAK2PAE2@Z) в функции "private: void __clrcall monitor_sis_res::Form1::button3_Click_1(class System::Object ^,class System::EventArgs ^)"(?button3_Click_1@Form1@monitor_sis_res@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) G:\КСиС\Курсовая 2012\Курсовая 2012\monitor_sis_res\monitor_sis_res\monitor_sis_res.obj


Ошибка 6 error LNK2019: ссылка на неразрешенный внешний символ "extern "C" long __stdcall RegOpenKeyExW(struct HKEY__ *,wchar_t const *,unsigned long,unsigned long,struct HKEY__ * *)" (?RegOpenKeyExW@@$$J220YGJPAUHKEY__@@PB_WKKPAPAU1@@Z) в функции "private: void __clrcall monitor_sis_res::Form1::button3_Click_1(class System::Object ^,class System::EventArgs ^)" (?button3_Click_1@Form1@monitor_sis_res@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) G:\КСиС\Курсовая 2012\Курсовая 2012\monitor_sis_res\monitor_sis_res\monitor_sis_res.obj


Ошибка 7 error LNK1120: 4 неразрешенных внешних элементов G:\КСиС\Курсовая 2012\Курсовая 2012\monitor_sis_res\Debug\monitor_sis_res.exe 1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
28.11.2012, 22:46     Преобразование Char в System::String #2
Циклом можно попробовать, char в string, что типо
C++
1
2
3
4
string s;
char a[10];
for (int i=0;i<strlen(a);i++)
s+=a[i];
Примитивно, но что-то на ум ничего лучше не приходит.
CSIS119
2 / 2 / 0
Регистрация: 28.11.2012
Сообщений: 11
28.11.2012, 23:13  [ТС]     Преобразование Char в System::String #3
если я правильно понял, то нужно сделать так:
C++
1
2
3
4
5
6
7
8
9
10
HKEY rKey;
        TCHAR Reget[256];
        DWORD RegetPath=256;
            RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", NULL, KEY_QUERY_VALUE, &rKey);
            RegQueryValueEx(rKey,L"ProcessorNameString", NULL, NULL,(LPBYTE)&Reget, &RegetPath);
            string s;
char a[Reget];
for (int i=0;i<strlen(a);i++)
s+=a[i]
this->label8->Text =s;
в таком случае выдает предупреждения:
Предупреждение 1 warning C4129: H: неизвестная escape-последовательность g:\ксис\курсовая 2012\курсовая 2012\monitor_sis_res\monitor_sis_res\Form1.h 425 (на строку RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", NULL, KEY_QUERY_VALUE, &rKey)
и Предупреждение 9 warning C4018: <: несоответствие типов со знаком и без знака g:\ксис\курсовая 2012\курсовая 2012\monitor_sis_res\monitor_sis_res\Form1.h 429
(строка for (int i=0;i<strlen(a);i++))

Добавлено через 1 минуту
а нет ли никакого банального преобразования типов, как например atoi. или вообще как в делфи IntToStr)))&
Wolkodav
 Аватар для Wolkodav
599 / 452 / 32
Регистрация: 18.09.2012
Сообщений: 1,685
28.11.2012, 23:42     Преобразование Char в System::String #4
ну есть dinamic_cast<>, поищи. Это динамическое преобразование типов, или static_cast<>
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
28.11.2012, 23:52     Преобразование Char в System::String #5
лень было читать первый пост , но у Мейерса сеня читал про s.assign(ch);
а вообще тут много полезного
полезная ссылка
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
29.11.2012, 01:30     Преобразование Char в System::String #6
CSIS119, а вариант с подключением необходимых библиотек не рассматривается?) чтобы исчезли ошибки линковки.
CSIS119
2 / 2 / 0
Регистрация: 28.11.2012
Сообщений: 11
29.11.2012, 20:39  [ТС]     Преобразование Char в System::String #7
Цитата Сообщение от I.M. Посмотреть сообщение
CSIS119, а вариант с подключением необходимых библиотек не рассматривается?) чтобы исчезли ошибки линковки.
та вроде все подключил. по крайней мере в консоли работало

Добавлено через 22 минуты
у меня и в консоли не сразу вывело, по крайней мере стандартными методами не получалось, а именно cout или printf. а вот получилось когда воспользовался wprintf. а как в формах быть не знаю((
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
29.11.2012, 21:00     Преобразование Char в System::String #8
C++
1
#pragma comment(lib, "advapi32")
есть?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2012, 21:12     Преобразование Char в System::String
Еще ссылки по теме:

Преобразование string в char* C++
C++ преобразование string в char*
C++ String в char. Не получается преобразование

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

Или воспользуйтесь поиском по форуму:
CSIS119
2 / 2 / 0
Регистрация: 28.11.2012
Сообщений: 11
29.11.2012, 21:12  [ТС]     Преобразование Char в System::String #9
нет, такого не было, сейчас попробую с ним.
в консоли работало с
C++
1
2
3
4
#include "stdafx.h"
#include "windows.h"
#include "stdio.h"
#include "iostream"
Добавлено через 6 минут
Цитата Сообщение от I.M. Посмотреть сообщение
#pragma comment(lib, "advapi32")
помогло, огромное спасибо.
конечный результат такой:
C++
1
2
3
4
5
6
7
private: System::Void button3_Click_1(System::Object^  sender, System::EventArgs^  e) { 
        HKEY rKey;
        TCHAR Reget[256];
        DWORD RegetPath=256;
            RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"\HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0", NULL, KEY_QUERY_VALUE, &rKey);
            RegQueryValueEx(rKey,L"ProcessorNameString", NULL, NULL,(LPBYTE)&Reget, &RegetPath);
        this->label8->Text =gcnew System::String( Reget);
Yandex
Объявления
29.11.2012, 21:12     Преобразование Char в System::String
Ответ Создать тему
Опции темы

Текущее время: 11:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru