На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania 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.
Страницы: (3) 1 2 [3]  все  ( Перейти к последнему сообщению )  
> Наполнение FAQ раздела и базы исходников форума, Что требуется, какие поощрения
    В связи с некоторыми вопросами, поступившими за последнее время, решил создать тему и прояснить ситуацию по поводу наполнения нашей базы знаний.

    Итак, на форуме существует две категории разделов:
    • Раздел с часто задаваемыми вопросами, относящимися к конкретному ЯП -- <ЯП> FAQ
    • Раздел с полезными исходниками на любом ЯП, где исходники не обязательно должны решать часто встречающуюся проблему -- Наши Исходники

    Какие исходники нужны форуму:
    • Исходники, решающие часто поднимающийся в разделе или на форуме вопрос, не имеющий (или имеющий не оптимальное) решения ни в одном из разделов двух категорий
    • Исходники, решающие узкий, редко поднимающийся, но не тривиальный вопрос, решения которого нет в разделе Наши Исходники

    Что нужно, что бы ваш код попал в FAQ или в раздел Наши Исходники:
    1. Нужен законченный, работающий исходный код, который наглядно демонстрирует решение того или иного вопроса. Если код предназначен для FAQ, он должен быть написан на ЯП раздела
    2. Код должен сопровождаться описанием "Что код решает", "Как он работает" и "Как им пользоваться"
    3. Код должен использовать только стандартные возможности платформы, для которой он предназначен
    Естественно, крайне желательно, что бы код был написан в хорошем стиле, без магических чисел, магических конструкций и неинформативных названий переменных

    Что вы получаете за пополнение базы знаний форума:
    Прежде всего, благодарность участников форума ;)
    Так же, за каждую тему в FAQ автору полагается от 1-го до нескольких DGM user posted image, на усмотрение модератора раздела. Виртуальные деньги форума всегда отображаются в вашем профиле, рядом с рейтингом. Кроме того, вы можете за них приобрести один из товаров, доступных в нашем магазине DigiMania.


    Спрашивайте, что не ясно, постараюсь ответить :)
    char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
    for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


    user posted image Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
      Цитата artsb @
      B.V., вроде бы не часто про это спрашивают, но, ИМХО, будет полезно иметь такую функцию в исходниках. Как считаете?

      Я, честно говоря, не очень понял, чем она отличается от LoadString.. В отличие от последней не смотрит языковой идентификатор?

      Цитата Eric-S @
      У меня это всё есть но уже на C++.

      Собственно, на C++ оно было бы и предпочтительнее :) И да, было бы неплохо так же пройтись немного по C++ Exceptions. Подробно писать в рамках одной статьи не вижу смысла, лучше коротко суть, а при желании, подробности вынести в отдельную статью

      Цитата Eric-S @
      Правда вот не помню куда потерял класс получающий информацию о модуле. Но что-то такое писал. Получение названия, версии, описания, языка ресурсов, имени разработчика...

      Я не совсем это имел ввиду, это уже чтение ресурсов, использование GetFileVersionInfo и сопутствующих
      Я же имел ввиду чтение инфы из PE-заголовка посредством DbgHelp

      Цитата Eric-S @
      Но я думаю, что такое надо разбирать по отдельности.
      1. Локализация и компиляция сообщений .
      2. Трассировка и распечатка стека.
      3. перехват исключений и Диагностическое окно с информацией об ошибке.

      Согласен, каждая тема тянет на отдельную статью в ФАК, но было бы так же неплохо иметь обобщенный пример создания отчета
      char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
      for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


      user posted image Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
        Цитата B.V. @
        Я, честно говоря, не очень понял, чем она отличается от LoadString.. В отличие от последней не смотрит языковой идентификатор?

        Разница большая. У нас с ЫукпШ на эту тему дискуссия была в той же ветке. Почитайте там. А то мне лень всё заново объяснять :) Я ж поэтому и предлагаю добавить её в исходники, т.к. там не всё так просто.
        Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт.

        "Путь глупого правилен в его глазах, но кто слушается совета, тот мудр." (Соломон)

        "Из слов всевозможных, что сходят с пера,
        грустней быть не может, чем «если б тогда…»" (Джон Гринлиф Уитьер)

        Мир вокруг нас
          Цитата artsb @
          У нас с ЫукпШ на эту тему дискуссия была в той же ветке. Почитайте там

          Все, что я смог выцепить из вашей дискуссии, это
          Цитата artsb @
          я сейчас не буду рассказывать что и как. Я прочитал на эту тему много информации на форумах и накатал функцию

          Может, вкратце объяснишь, что в твоей функции особенного? :)
          char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
          for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


          user posted image Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
            Ок. В общем, суть в том, что строки в ресурсах хранятся не просто так, а блоками по 16 штук. Поэтому, простой вызов:
            ExpandedWrap disabled
              FindResource(hInstance, StringID, RT_STRING);

            ничего не даст. Так как строки с идентификатором StringID в ресурсах нет. Нужно определить, в каком блоке находится строка. Получить этот блок. И уже из него вытащить саму строку.

            Мало кто об этом знает. Обычно все сразу пытаются скормить FindResource свой идентификатор строки и ничего не находят. Вот поэтому, я и предложил эту функцию добавить в исходники :)
            Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт.

            "Путь глупого правилен в его глазах, но кто слушается совета, тот мудр." (Соломон)

            "Из слов всевозможных, что сходят с пера,
            грустней быть не может, чем «если б тогда…»" (Джон Гринлиф Уитьер)

            Мир вокруг нас
              Цитата artsb @
              Мало кто об этом знает. Обычно все сразу пытаются скормить FindResource свой идентификатор строки и ничего не находят.

              ибо не многие пытаются прочитать, что такое RT_STRING....
              "Бубен Team Edition for Developers"
              ULLib | ULj2me
                Ой! Помню, как в давние времена, намучался, выковыривая стандартное сообщение об исключении!

                Сейчас уже подробностей не помню. Но пришлось юзать RtlFindMessage, так как FormatMessage сообщение видел, но отдавать не хотел.

                Вспомнил, даже жутко стало. А ведь не пользуюсь этим кодом. Лениво подключать.

                И вообще, подозреваю, что сейчас, в ядре, тех сообщений нет в помине.
                Под хрюшей такие потрясающе информативные окошки были... "программа попыталась read память по адресу xxx"
                А на семёрке, всё не так. Окно для юзеров и даже придушить его системой не реально. Только из своей программы, исключительно для её процесса.
                Человек должен делать то, что может сделать только он, всё остальное должна делать машина!
                  Цитата ElcnU @
                  ибо не многие пытаются прочитать, что такое RT_STRING....

                  Так вот тож.
                  Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт.

                  "Путь глупого правилен в его глазах, но кто слушается совета, тот мудр." (Соломон)

                  "Из слов всевозможных, что сходят с пера,
                  грустней быть не может, чем «если б тогда…»" (Джон Гринлиф Уитьер)

                  Мир вокруг нас
                    Цитата artsb @
                    Нужно определить, в каком блоке находится строка. Получить этот блок. И уже из него вытащить саму строку.

                    Тогда оформи, плиз, отдельным постом с пояснениями, в ФАК не уйдет, но в разделе Наши Исходники определенно лишним пример не будет
                    char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
                    for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


                    user posted image Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
                      Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт.

                      "Путь глупого правилен в его глазах, но кто слушается совета, тот мудр." (Соломон)

                      "Из слов всевозможных, что сходят с пера,
                      грустней быть не может, чем «если б тогда…»" (Джон Гринлиф Уитьер)

                      Мир вокруг нас
                        Неплохо. Но я ожидал что-то вроде этого, т.е. немного более подробное описание технических моментов
                        Доработаешь или принимать в текущем виде?
                        char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
                        for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


                        user posted image Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
                          Цитата B.V. @
                          Неплохо. Но я ожидал что-то вроде этого, т.е. немного более подробное описание технических моментов
                          Доработаешь или принимать в текущем виде?

                          ага, я по инерции тоже с этим исходником сравнил :)
                          "Бубен Team Edition for Developers"
                          ULLib | ULj2me
                            Цитата B.V. @
                            Доработаешь или принимать в текущем виде?

                            Ок. Прочитаю статью и доработаю :)
                            Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт.

                            "Путь глупого правилен в его глазах, но кто слушается совета, тот мудр." (Соломон)

                            "Из слов всевозможных, что сходят с пера,
                            грустней быть не может, чем «если б тогда…»" (Джон Гринлиф Уитьер)

                            Мир вокруг нас
                              Исправил. Проверяйте :)
                              Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт.

                              "Путь глупого правилен в его глазах, но кто слушается совета, тот мудр." (Соломон)

                              "Из слов всевозможных, что сходят с пера,
                              грустней быть не может, чем «если б тогда…»" (Джон Гринлиф Уитьер)

                              Мир вокруг нас
                                О, вот это то, что надо :)
                                char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
                                for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


                                user posted image Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
                                  Рад стараться :)
                                  Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт.

                                  "Путь глупого правилен в его глазах, но кто слушается совета, тот мудр." (Соломон)

                                  "Из слов всевозможных, что сходят с пера,
                                  грустней быть не может, чем «если б тогда…»" (Джон Гринлиф Уитьер)

                                  Мир вокруг нас
                                  1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                  0 пользователей:
                                  Страницы: (3) 1 2 [3]  все


                                  Рейтинг@Mail.ru
                                  [ Script Execution time: 0,1499 ]   [ 17 queries used ]   [ Generated: 25.06.19, 22:04 GMT ]