|
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 15
|
||||||
const char в LPCWSTR01.10.2013, 21:39. Показов 8601. Ответов 10
Метки нет (Все метки)
Суть программы вывести информацию об аппаратной части компьютера,а именно процессор,озу,диски,видеокарта,мышь,клав иатура.
Однако выдает следующие ошибки: error C2061: синтаксическая ошибка: идентификатор "_LCHAR" error C2664: RegOpenKeyExW: невозможно преобразовать параметр 2 из "const char [66]" в "LPCWSTR" error C2664: RegQueryValueExW: невозможно преобразовать параметр 2 из "const char [10]" в "LPCWSTR" error C2664: RegQueryValueExW: невозможно преобразовать параметр 2 из "const char [12]" в "LPCWSTR" error C2664: RegOpenKeyExW: невозможно преобразовать параметр 2 из "const char [47]" в "LPCWSTR" error C2664: RegQueryValueExW: невозможно преобразовать параметр 2 из "const char [20]" в "LPCWSTR" Я понимаю,что нужно использовать вместо char(1байт) использовать wchar(2байта) префиксом _L или проще даже _T...Однако ничего не выходит,ребят...помогите пожалуйста... Если можно поправьте код и что не так делаю?
0
|
||||||
| 01.10.2013, 21:39 | |
|
Ответы с готовыми решениями:
10
const char*' to 'LPCWSTR Аргумент типа const char* не совместим с параметром типа LPCWSTR Невозможно преобразовать параметр из "const char [12]" в "LPCWSTR" |
|
176 / 144 / 70
Регистрация: 01.05.2012
Сообщений: 414
|
||||||
| 01.10.2013, 21:45 | ||||||
|
Держи) Просто надо было преобразовние сделать)
2
|
||||||
|
0 / 0 / 0
Регистрация: 23.12.2012
Сообщений: 15
|
|
| 01.10.2013, 22:34 [ТС] | |
|
Спасибо большое,теперь проблема посерьезнее... Видимо я криво вывожу данные из реестра...потому что у меня ничего не выводится,выводится лишь одна буква,не понятно почему...к примеру,что бы достать название процессора я иду в
"HARDWARE\\DESCRIPTION\\System\\CentralP rocessor\\0" Оттуда из "ProcessorNameString" беру название,но оно выводит мне лишь одну букву...а именно "A",на машине этой стоит процессор Amd я предполагаю что оно выводит лишь первый символ. Пробовал вместо if поставить while,однако ситуацию это не спасло никак...как достать и вывести информацию о процессоре например,помогите пожалуйста.
0
|
|
|
Ушел с форума
|
|||
| 02.10.2013, 10:06 | |||
|
Да, программа после этого компилируется, вот только результаты ее запуска будут, мягко говоря, странными. "широких" символах (wchar_t *). А ошибки компилятора давите, благодаря совету, данному выше. Mokrischev, пишите так, например: RegOpenKeyExW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\... А вместо printf используйте wprintf.
2
|
|||
|
11 / 11 / 2
Регистрация: 20.05.2011
Сообщений: 71
|
|
| 04.10.2013, 12:06 | |
|
Было бы круто просто приведением типов сделать из char* в wchar_t*
+так же есть функции перевода этих типов. wctomb() и mbtowc()
0
|
|
|
Ушел с форума
|
||
| 04.10.2013, 12:27 | ||
|
cp866, win-1251, utf-8... Поэтому выбор остается за программистом.
1
|
||
|
11 / 11 / 2
Регистрация: 20.05.2011
Сообщений: 71
|
|
| 04.10.2013, 12:43 | |
|
агааа...
тогда ясно, почему все не так просто
0
|
|
|
12 / 12 / 7
Регистрация: 05.06.2012
Сообщений: 280
|
|
| 04.10.2013, 13:35 | |
|
А можно ли какой-нибудь макрос объявить???? чтот типо #define UNICODE что бы перед литераломи визде "L" не писать, или опцию компилятора какую?????
0
|
|
| 04.10.2013, 13:41 | |
|
у тебя в настройках проекта указан юникод или что-то многобайтовое, потому компайлер по умолчанию использует соотв. варианты ф-й. если тебе не нужны эти фокусы, измени конфигурацию проекта, и геморрой исчезнет сам собой. все символы станут снова однобайтовыми.
1
|
|
|
Ушел с форума
|
|
| 04.10.2013, 13:47 | |
|
Есть мнение, - и я с ним полностью согласен, - что использовать препроцессор
для выбора символьного типа для строк (char/wchar_t) - не очень хорошая идея. Некоторые функции ведут себя по-разному, в зависимости от того, какой используется вариант - юникодный или ANSI. Типичный пример - CreateProcess. В итоге может получиться, что программа нормально работает, когда включен multibyte, и выдает ошибки, если включен wide characters. Поэтому лучше всегда все писать в явном виде - CreateProcessW вместо CreateProcess, WIN32_FIND_DATAW вместо WIN32_FIND_DATA и т.д. Кстати, в стандартной библиотеке C++ тоже используется этот подход: string/wstring, cout/wcout, ofstream/wofstream и т.д. А использовать multi-byte сейчас - это вообще каменный век. Из-за этого программа не сможет, например, корректно отображать кириллицу на нерусских локализациях Windows, или там, где русский язык не установлен в качестве дефолтного для программ, не поддерживающих Unicode.
2
|
|
|
12 / 12 / 7
Регистрация: 05.06.2012
Сообщений: 280
|
|
| 04.10.2013, 13:56 | |
|
Ок cпасибо, а если QtCreator у меня?)))
0
|
|
| 04.10.2013, 13:56 | |
|
Помогаю со студенческими работами здесь
11
Невозможно преобразовать "const char [7]" в "LPCWSTR" Ошибка 'аргумент типа "const char *" несовместим с параметром типа "LPCWSTR"' Столкнулся с ошибкой "аргумент типа "const char *" несовместим с параметром типа "LPCWSTR" argument of type "const char *" is incompatible with parameter of type "LPCWSTR" char to LPCWSTR Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|