0 / 0 / 0
Регистрация: 14.09.2015
Сообщений: 6
|
|||||||||||
1 | |||||||||||
Конвертация const char [] в PLCWSTR14.09.2015, 22:04. Показов 918. Ответов 12
Метки нет (Все метки)
Доброго времени суток, профессионалы.
Подскажите как скормить char addrStr[15] функции записи в реестр RegSetValueEx в качестве пятого параметра? Функция имеет следующий прототип:
lpData [in] The data to be stored. For string-based types, such as REG_SZ, the string must be null-terminated. With the REG_MULTI_SZ data type, the string must be terminated with two null characters. String-literal values must be formatted using a backslash preceded by another backslash as an escape character. For example, specify "C:\\mydir\\myfile" to store the string "C:\mydir\myfile". Note lpData indicating a null value is valid, however, if this is the case, cbData must be set to '0'. Вот как примерно это выглядит в коде:
Помогите или на крайняк ткните носом, где почитать... Спасибо.
0
|
14.09.2015, 22:04 | |
Ответы с готовыми решениями:
12
Чем отличаются объявления const char* и const* char Error C2440: return: невозможно преобразовать "const char *" в "const char (&)[6]" char operator[](unsigned short offset) const; // что означает const? Ошибка: Cannot convert 'char const[18]' to 'const wchar_t *' |
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
14.09.2015, 22:14 | 2 | |||||
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
14.09.2015, 22:19 | 4 | |||||
0
|
0 / 0 / 0
Регистрация: 14.09.2015
Сообщений: 6
|
|
15.09.2015, 09:42 [ТС] | 5 |
Спасибо за оперативный отклик.
Я прекрасно понимаю, что вопросы до боли нубские задаю, но все же спрошу. Как добавить поддержку CString в мой проект? Дело в том, что проект консольный, без MFC и ATL, следовательно инклуд хедера CString.h не оказывает желаемого результата - "Не удается открыть файл include: CString.h: No such file or directory". Да и не хотелось сюда MFC вмешивать, так как экзешник требуется статически линкованый сделать, а c MFC он будет весить как слов. Есть еще варианты?
0
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
||||||
15.09.2015, 10:05 | 6 | |||||
Используй тип TCHAR вместо char (это макрос: в юникоде wchar_t в мультибайтовой char), при заполнении массива символов ставь в конце нуль-символ ('\0' или просто 0).
0
|
0 / 0 / 0
Регистрация: 14.09.2015
Сообщений: 6
|
|
15.09.2015, 11:48 [ТС] | 8 |
Кстати, кто-нибудь в курсе, как установить переменную среды не для процесса, а как бы глобально, чтобы можно было по закрытию процесса обратиться к это переменной?
0
|
0 / 0 / 0
Регистрация: 14.09.2015
Сообщений: 6
|
|
15.09.2015, 16:34 [ТС] | 10 |
castaway, да, это правильно, но меня интересует программный вариант. Есть целый ряд функций, которые устанавливают переменные среды, но это только для процесса в котором вызывается функция. А мне бы так, что после завершения процесса была возможность обратиться к этой переменной.
С RegSetValueEx так ничего и не выходит. Заменил "char addrStr[15];" на "TCHAR addrStr[15];", но RegSetValueEx не умолима - "error C2664: strlen: невозможно преобразовать параметр 1 из 'TCHAR [15]' в 'const char *'". Все же как из "TCHAR [15]" сделать "const char *"?
0
|
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
|
|
15.09.2015, 16:37 | 11 |
mightyman, _tcslen вместо strlen
0
|
0 / 0 / 0
Регистрация: 14.09.2015
Сообщений: 6
|
|
16.09.2015, 09:33 [ТС] | 13 |
Вопрос решен. Всем спасибо, ребята!!!
0
|
16.09.2015, 09:33 | |
16.09.2015, 09:33 | |
Помогаю со студенческими работами здесь
13
Ошибка "значение типа "const char [81]" нельзя использовать для инициализации сущности типа "const unsigned char [61]" Cannot convert 'const wchar_t *' to 'const char *' Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' Проблема с несовместимостью типов параметров char, const char, STRSAFE_LPWSTR, STRSAFE_LPCWSTR Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |