На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются.
4. Используйте теги [ code=cpp ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Старайтесь формулировать свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной и более давности без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта (C++) user posted image FAQ Форума user posted image Наши Исходники user posted image Поиск по Разделу user posted image MSDN Library Online (Windows Driver Kit) user posted image Google

Ваше мнение о модераторах: user posted image B.V.
Модераторы: B.V.
  
> Как прочитать строку с реестра?
    Как прочитать строку с реестра?

    ExpandedWrap disabled
      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);
       
      }
    Сообщение отредактировано: NOCaut -
      Цитата
      return _itow(*cData, string, 10);//у меня 1

      что ты хочешь сделать этой строчкой? полнейший бред.

      как-то так должно быть
      ExpandedWrap disabled
        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;
        }
        Что ето за тип?
        ExpandedWrap disabled
          typedef std::basic_string<TCHAR> tstring;


        он будет работать с юникодом?
          тебя уже пора банить за систематическое игнорирование рекомендации почитать литературу по C/C++
            Я использую одни типи а мне постоянно пишут какието новие типи незнакомие мне... И ето бил риторический вопрос) ммне нада WCHAR.

            И я вобще непонимаю кто пишет без юникода сечас :blink:
            Сообщение отредактировано: NOCaut -
              в чем проблема заменить char на WCHAR ???????????
                Цитата NOCaut @
                Что ето за тип?

                Строка STL. Следующий вопрос по основам приведет к закрытию темы
                  Незнаю чем ето заменить:
                  ExpandedWrap disabled
                    long GetKeyValue(LPCWSTR str) {
                      str->append((const WCHAR *)buff, (dwBuffLen / sizeof(WCHAR)));


                  Добавлено
                  Цитата
                  Строка STL. Следующий вопрос по основам приведет к закрытию темы
                  Больше не буду ;)

                  Добавлено
                  Можна аналог для моего юникода.
                  ExpandedWrap disabled
                      str->append((const WCHAR *)buff, (dwBuffLen / sizeof(WCHAR)));
                  Сообщение отредактировано: NOCaut -
                    buff является аналогом твоего wchar_t string[255]
                      Я про то что к str неможна примерить ->append.
                        ExpandedWrap disabled
                          Почему вивиодит белеберду?
                          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);
                          }
                          результаты возврата функций RegOpenKeyEx и RegQueryValueExW надо проверять.
                          Отладчиком пройдись да посмотри, что на самом деле кладется в твой буфер
                            Разобрался спасиб
                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0457 ]   [ 16 queries used ]   [ Generated: 18.07.25, 09:57 GMT ]