
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.30] |
![]() |
|
Сообщ.
#1
,
|
|
|
Как прочитать строку с реестра?
![]() ![]() wchar_t* GetFolderPath() { //Получаем значение параметра unsigned wchar_t cData[255]={0}; DWORD BuffLen = sizeof cData; wchar_t string[255]={0}; HKEY hKey; //Открываем ключ реестра if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\My_Key", NULL, KEY_READ, &hKey) == ERROR_SUCCESS) RegQueryValueEx(hKey, TEXT("FolderPath"), NULL, NULL, (LPBYTE)cData, &BuffLen); return _itow(*cData, string, 10); //Закрываем ключ реестра RegCloseKey(hKey); } |
Сообщ.
#2
,
|
|
|
Цитата return _itow(*cData, string, 10);//у меня 1 что ты хочешь сделать этой строчкой? полнейший бред. как-то так должно быть ![]() ![]() typedef std::basic_string<TCHAR> tstring; long GetKeyValue(tstring *str) { long result = -1; HKEY hKey; if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\Microsoft\\NetSh"), NULL, KEY_READ, &hKey) == ERROR_SUCCESS) { BYTE buff[512]; DWORD dwBuffLen = sizeof(buff); if(RegQueryValueEx(hKey, TEXT("rpc"), NULL, NULL, buff, &dwBuffLen) == ERROR_SUCCESS) { str->append((const TCHAR *)buff, (dwBuffLen / sizeof(TCHAR))); result = 0L; } RegCloseKey(hKey); } return result; } //======================================================================== int _tmain(int argc, _TCHAR* argv[]) { tstring str; if(GetKeyValue(&str) == 0L) { // считали } return 0; } |
Сообщ.
#3
,
|
|
|
Что ето за тип?
![]() ![]() typedef std::basic_string<TCHAR> tstring; он будет работать с юникодом? |
Сообщ.
#4
,
|
|
|
тебя уже пора банить за систематическое игнорирование рекомендации почитать литературу по C/C++
|
Сообщ.
#5
,
|
|
|
Я использую одни типи а мне постоянно пишут какието новие типи незнакомие мне... И ето бил риторический вопрос) ммне нада WCHAR.
И я вобще непонимаю кто пишет без юникода сечас ![]() |
Сообщ.
#6
,
|
|
|
в чем проблема заменить char на WCHAR ???????????
|
![]() |
Сообщ.
#7
,
|
|
Цитата NOCaut @ Что ето за тип? Строка STL. Следующий вопрос по основам приведет к закрытию темы |
Сообщ.
#8
,
|
|
|
Незнаю чем ето заменить:
![]() ![]() long GetKeyValue(LPCWSTR str) { str->append((const WCHAR *)buff, (dwBuffLen / sizeof(WCHAR))); Добавлено Цитата Больше не буду Строка STL. Следующий вопрос по основам приведет к закрытию темы ![]() Добавлено Можна аналог для моего юникода. ![]() ![]() str->append((const WCHAR *)buff, (dwBuffLen / sizeof(WCHAR))); |
![]() |
Сообщ.
#9
,
|
|
buff является аналогом твоего wchar_t string[255]
|
Сообщ.
#10
,
|
|
|
Я про то что к str неможна примерить ->append.
|
Сообщ.
#11
,
|
|
|
![]() ![]() Почему вивиодит белеберду? void mmm() { HKEY hkSub = NULL; wchar_t buff[80]; DWORD dwMaxValueLen = sizeof(buff); // получить строку из реестра RegOpenKeyEx(HKEY_CURRENT_USER,_TEXT("Software\\My Key"),0, KEY_QUERY_VALUE | KEY_READ ,&hkSub); RegQueryValueExW( hkSub, L"FolderPath",NULL, NULL, (LPBYTE) buff, &dwMaxValueLen); MessageBox(0,buff,L"",0); } |
Сообщ.
#12
,
|
|
|
результаты возврата функций RegOpenKeyEx и RegQueryValueExW надо проверять.
Отладчиком пройдись да посмотри, что на самом деле кладется в твой буфер |
Сообщ.
#13
,
|
|
|
Разобрался спасиб
|