На главную
ПРАВИЛА 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.
  
> Наполнение 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 Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
      B.V.
      А вот и мой исходник (см. .pdf)!!! Может быть переместить в FAQ как "Аналог команды PAGE системного отладчика"? Или хотя бы 1 D.g. получить бы мне?!!! :)
      Прикреплённый файлПрикреплённый файлx86__i386_________________________.pdf (291,97 Кбайт, скачиваний: 785)

      Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
        Что делает команда PAGE отладчика Syser? Где комментарии? Где описание?

        Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
        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. @
          Что делает команда PAGE отладчика Syser? Где комментарии? Где описание?

          Выводит по виртуальному (линейному) адресу его физический. Вот!
          А описание там излишне, и так по коду всё понятненько!

          Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
            а зачем нам физический адрес ?

            Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
            Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал"("Yоur bunnу wrоte")
              Цитата Dem_max @
              а зачем нам физический адрес ?

              Можно его и подменить на любой другой физический... А, вааще, язык учат начиная с азбуки, а эта PAGE - это уже понимание трансляции адресов, своего рода ABC для ПК.

              Добавлено
              B.V.
              Мне бы хотя бы одну Dgm!!! А то я Senior Member и без наследства. :'(

              Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                Азбука это не понимание как какая нибудь ОС транслирует адреса виртуальные в физические, это внутренние механизмы ОС.

                Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал"("Yоur bunnу wrоte")
                  Dem_max
                  Отвяжись! Мне от B.V. денюжка нужна, а ты все портишь! :)

                  Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                    Давай я тебе в репу дам :rolleyes:

                    Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                    Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал"("Yоur bunnу wrоte")
                      :)

                      Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                        Цитата Бублик @
                        Выводит по виртуальному (линейному) адресу его физический. Вот!
                        А описание там излишне, и так по коду всё понятненько!

                        Описание там не излишне. В таком виде я эту статью в ФАК принять не могу
                        Опиши смысл кода, и хотя бы коротко -- принцип действия, и прокомментируй ключевые моменты

                        Цитата Бублик @
                        Мне от B.V. денюжка нужна

                        За любое пополнение ФАКа полагается награда, это даже не обсуждается

                        Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                        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 Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
                          Хорошо. Спасибо! Я за выходные сделаю.

                          Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                            B.V.
                            В облом что-то ещё писать. Извини за потерянное из-за меня время! ;)

                            Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                              Бублик, жаль
                              Если передумаешь, подними тему

                              Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                              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 D.g. получить бы мне?!!!

                                А в чём фишка этих D.g.? Для чего они?

                                B.V., какие темы нужны в FAQ? Вот к примеру недавно я приводил код для получения букв подключенного виртуального диска. Такой код годится для FAQ?

                                Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                                Сообщение отредактировано: neokoder -
                                Не ошибается лишь тот кто ничего не делает.
                                  Цитата neokoder @
                                  А в чём фишка этих D.g.? Для чего они?

                                  Для повышения ЧСВ
                                  Цитата neokoder @
                                  B.V., какие темы нужны в FAQ?

                                  В основном, те, которые поднимаются часто (Frequently Asked Questions)

                                  Цитата neokoder @
                                  Вот к примеру недавно я приводил код для получения букв подключенного виртуального диска. Такой код годится для FAQ?

                                  Нет, такой код годится для Наших Исходников
                                  Собственно, код, предложенный Бубликом, тоже годится скорее для этого раздела, чем для раздела FAQ. Не припомню вопросов про трансляцию адресов в нашем разделе.
                                  Зато у нас неоднократно всплывали вопросы по различию флешки от жесткого диска и получения уведомления/управления новым USB-Storage устройством, и такой код однозначно пойдет в FAQ.
                                  За награждения за пополнение C++ FAQ отвечаю я, за пополнение раздела Наши Исходники отвечает модератор раздела, сейчас это Флекс.

                                  Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                                  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. @
                                    Зато у нас неоднократно всплывали вопросы по различию флешки от жесткого диска и получения уведомления/управления новым USB-Storage устройством, и такой код однозначно пойдет в FAQ.

                                    Моя функция http://forum.sources.ru/index.php?showtopi...9368IsFlasDrive подойдёт?

                                    Цитата B.V. @

                                    получения уведомления/управления новым USB-Storage устройством

                                    Немного не понял что имеется ввиду.

                                    Ещё к примеру я постил код-шаблон для обработки исключений по RAII и в стиле C. Пойдёт в FAQ? Наверняка часто задают, я сам пару тем здесь замечал.

                                    И вообще какой механизм пополнения FAQ? Вот к примеру вопрос задаётся несколько раз и задающий получает на него ответ в одной теме, и получается как-бы можно уже этот ответ добавлять в FAQ, поскольку несколько раз спрашивается.

                                    Это сообщение было перенесено сюда или объединено из темы "Аналог команды PAGE системного отладчика"
                                    Не ошибается лишь тот кто ничего не делает.
                                      Цитата neokoder @
                                      Моя функция http://forum.sources.ru/index.php?showtopi...9368IsFlasDrive подойдёт?

                                      Подойдет, только пост стоит немного почистить от переписки по теме

                                      Цитата neokoder @
                                      И вообще какой механизм пополнения FAQ? Вот к примеру вопрос задаётся несколько раз и задающий получает на него ответ в одной теме, и получается как-бы можно уже этот ответ добавлять в FAQ, поскольку несколько раз спрашивается.

                                      Постарался описать в прикрепленном посте. Ответ, как правило, дается с минимальным описанием, лишней перепиской по теме, и не всегда с законченным кодом. Для добавления в FAQ пост может потребовать некоторой правки
                                      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. @
                                        Ответ, как правило, дается с минимальным описанием, лишней перепиской по теме, и не всегда с законченным кодом. Для добавления в FAQ пост может потребовать некоторой правки

                                        Я всегда стараюсь дать законченный код, там где это возможно. :)


                                        Цитата B.V. @

                                        Код должен сопровождаться описанием "Что код решает", "Как он работает" и "Как им пользоваться"

                                        Сделаю.

                                        Цитата B.V. @
                                        Постарался описать в прикрепленном посте.

                                        Значит я понял, что мне надо добавить описание. А вот следующее не очень:

                                        Цитата B.V. @

                                        Если код предназначен для FAQ, он должен быть написано на ЯП раздела

                                        Насколько я увидел, есть только один общий раздел FAQ C++. Т.е. ты имеешь ввиду ЯП это С/С++? Или же у нас в разделе "Системное прогнраммирование" ты сделаешь отдельную тему для FAQ?

                                        Цитата B.V. @

                                        Код должен использовать только стандартные возможности платформы, для которой он предназначен


                                        А вот это не понял, что подразумевается под стандартные возможности платформы? К примеру DecviceIOControl - это стандартные возможности?

                                        Добавлено
                                        Цитата B.V. @
                                        Для добавления в FAQ пост может потребовать некоторой правки

                                        Да я вообще могу отдельным текстом всё сделать. Или же надо обязательно чтобы была ссылка на пост в теме?

                                        Сейчас посмотрел Раздел FAQ там вроде тему можно самому создавать. Так что я постю туда IsFlasDrive с описанием?
                                        Сообщение отредактировано: neokoder -
                                        Не ошибается лишь тот кто ничего не делает.
                                          Цитата neokoder @
                                          Насколько я увидел, есть только один общий раздел FAQ C++. Т.е. ты имеешь ввиду ЯП это С/С++?

                                          Именно так. У нас один раздел FAQ на все C/C++ разделы из-за сравнительно малой активности пополнения. Как только активность увеличится, вполне вероятно, что С++ WinAPI обзаведется собственным подразделом

                                          Цитата neokoder @
                                          А вот это не понял, что подразумевается под стандартные возможности платформы? К примеру DecviceIOControl - это стандартные возможности?

                                          Подразумевается не использование сторонних компонентов и библиотек, таких, как libusb, fmod, tinyxml и т.п., потому как это отдельные чужие проекты

                                          Добавлено
                                          Цитата neokoder @
                                          Сейчас посмотрел C/C++ FAQ]Раздел FAQ там вроде тему можно самому создавать. Так что я постю туда IsFlasDrive с описанием?

                                          Нет, темы в этот раздел могут добавлять только модераторы. Ты создаешь тему или пост в этом разделе, а я переношу в раздел FAQ
                                          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. @
                                            Подразумевается не использование сторонних компонентов и библиотек, таких, как libusb, fmod, tinyxml и т.п.

                                            Ясно. Т.е. без дополнительных либ, токмо чистый WinAPI и Standard C/C++ Libraries. Ok.

                                            Добавлено
                                            Цитата B.V. @
                                            Нет, темы в этот раздел могут добавлять только модераторы. Ты создаешь тему или пост в этом разделе, а я переношу в раздел FAQ

                                            в этом разделе имеется ввиду "Системное программирование"?
                                            Сообщение отредактировано: neokoder -
                                            Не ошибается лишь тот кто ничего не делает.
                                              Цитата neokoder @
                                              в этом разделе имеется ввиду "Системное программирование"?

                                              Да
                                              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. @
                                                Да

                                                Как озаглавливать тему?
                                                Не ошибается лишь тот кто ничего не делает.
                                                  На твое усмотрение. Если название будет соответствовать содержанию, его и оставлю
                                                  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 Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
                                                    В общем трендец! Не вижу больше никакого смысла тратить время на наполнение FAQ, после своих 2-х попыток.
                                                    Мне просто смешно, когда некоторые здешние спецы(вроде Dem_max и Мальчиша), вместо того, чтобы обращать внимание на функционал парят себе мозг синтаксисом. Откройте тогда FAQ по синтаксису C/C++ и занимайтесь там этим вдвоём на здоровье :) .

                                                    p.s. хотел было написать следующий FAQ по определению серийника жесткого диска(вопросы такие возникали здесь) в 2-х вариантах, с помощью WMI и DeviceIOControl, но теперь уже точно не буду. А то пришьют :crazy: ещё неправильное использование стиля(есть такой? :) ) С/C++ и будут мне усердно доказывать как правильно писать программы :). Да ну его нафиг такие приколы! :no:
                                                    Сообщение отредактировано: neokoder -
                                                    Не ошибается лишь тот кто ничего не делает.
                                                      Ребята, давайте поактивнее как-то. У вас же есть свои заготовки, можете обработать и выложить, и получить за это DGM'ку
                                                      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 Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
                                                        У меня есть исходник, который писал для друга, чтоб показать разные фичи.
                                                        Возбудился после его фразы: "так каждый дурак сможет, а вот без стандартной библиотеки, на чистом C и windows api."

                                                        Программа бесполезная. Делает окошко на windows api и изображает оживление.

                                                        Но можно посмотреть следующее:

                                                        0. Компиляция командными файлами.

                                                        1. отключение стандартных библиотек и функция WinMainCRTStartup.

                                                        2. Создание главного немодального окна CreateWindowEx, RegisterClassEx.

                                                        3. Добавление в окно дочерних контролов. WC_STATIC, WC_BUTTON.

                                                        4. Загрузка внешней библиотеки LoadLibrary, FreeLibrary. и Добавление дочернего контрола richedit.

                                                        5. Работа с кучей процесса HeapAlloc, HeapFree.

                                                        6. создание таблици строк в ресурсах и загрузка строки LoadString.
                                                        Особенно интересна сама компиляция ресурсов под ms vs 2012

                                                        7. Вывод сообщения об ошибке, т.е. получение текста FormatMessage

                                                        8. Клавишная навигация по окну. IsDialogMessage, DefDlgProc.

                                                        9. Обработка акселераторов TranslateAccelerator.

                                                        Ну и по мелочи немного.

                                                        Оно такое интересно, или нафиг?

                                                        Прикладываю во вложении. Код надо бы подчистить. Да и приму замечания. Пишите в личку.

                                                        Прикреплённый файлПрикреплённый файлumnik.zip (16 Кбайт, скачиваний: 209)

                                                        Думаю, что в таком виде не очень годится. Если интересно постораюсь оформить.

                                                        p.s. Друг положил его на дальнюю полочку и сказал, что обязательно посмотрит, когда освободится от текущих дел. А я развлекаюсь наворачиванием.

                                                        p.p.s. Возможно буду из этого "шаблона" разворачивать боевой код. Может чатик сделаю. Или чего-нибудь по круче.
                                                        Сообщение отредактировано: Eric-S -
                                                        Человек должен делать то, что может сделать только он, всё остальное должна делать машина!
                                                          Цитата Eric-S @
                                                          У меня есть исходник, который писал для друга, чтоб показать разные фичи.

                                                          В этом примере много всего ненужного или малоинтересного, к тому же, для ФАКа важен не только пример, но и пояснения принципа работы, или хотя бы, достаточно наглядный код

                                                          Цитата Eric-S @
                                                          1. отключение стандартных библиотек и функция WinMainCRTStartup.

                                                          В принципе, вопрос интересный, но не популярный

                                                          Цитата Eric-S @
                                                          7. Вывод сообщения об ошибке, т.е. получение текста FormatMessage

                                                          А вот это может быть интересно в качестве отдельной мини-статьи. Туда же, было бы очень желательно добавить пример DbgHelp-API с выводом не только подробного описания ошибки, но и стека, загруженных модулей и информации о каждом модуле в отдельности (версия, разрядность и т.д.)
                                                          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., вроде бы не часто про это спрашивают, но, ИМХО, будет полезно иметь такую функцию в исходниках. Как считаете?
                                                            Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт.

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

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

                                                            Мир вокруг нас
                                                              Цитата B.V. @
                                                              В этом примере много всего ненужного или малоинтересного, к тому же, для ФАКа важен не только пример, но и пояснения принципа работы, или хотя бы, достаточно наглядный код


                                                              Согласен. Много.. С другой стороны простое "hello, world'" или точнее "mi first window неинтересно и легко ищется. А вот что дальше, не всегда и понятно. Тестовый код пишется так, а приближаясь к боевому, уже совсем иначе. Та же обработка ошибок, меня очень напрягла.

                                                              У меня есть. Предложил к рассмотрению, в качестве исходной точки. Описать и объяснить могу почти всё. Но вот нужно ли кому-то?

                                                              Цитата Eric-S @
                                                              1. отключение стандартных библиотек и функция WinMainCRTStartup.


                                                              Цитата B.V. @
                                                              В принципе, вопрос интересный, но не популярный


                                                              С этого всё и началось и это была как раз основная фича всей затеи. Требовался проект без стандартной библиотеки, причом работающий.

                                                              Дело было 1 апреля, и друг, пытался меня развести, что главной функцией является StartFunction. А не какая-то MainCRTStartup Даже кинул мне упоротый проект, якобы доказывающий его правоту. И что со стандартной библиотекой каждый дурак может.

                                                              Я же кинулся доказывать, что он не прав. До сих пор не понимаю, это была попытка развода или он гнал на полном серьёзе.

                                                              Цитата Eric-S @
                                                              7. Вывод сообщения об ошибке, т.е. получение текста FormatMessage


                                                              Цитата B.V. @
                                                              А вот это может быть интересно в качестве отдельной мини-статьи. Туда же, было бы очень желательно добавить пример DbgHelp-API с выводом не только подробного описания ошибки, но и стека, загруженных модулей и информации о каждом модуле в отдельности (версия, разрядность и т.д.)


                                                              Ха-эм. У меня это всё есть но уже на C++.
                                                              symbols - загрузка символьной информации, трансформация адреса функции в символьное имя.
                                                              stack_trace - трассировка стека и возврат его строкового представления
                                                              messages - локализация сообщений на основе функции FormatMessage
                                                              Плюс некоторые сервисы, чтоб по ходу исполнения выводить диагностические сообщения об ошибках.

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

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

                                                              Плюс к этому затрагиваются темы обработки структурных и векторных исключений.
                                                              Да и работу обычных плюсовых исключений нужно расковырять, для понимания нюансов.

                                                              Если же упрощать, то конечно можно накалякать чего-нибудь простенькое на чистом си. Но вот в боевом коде, я такого не использовал и не знаю, что ожидать. Будет круто, но бесполезно.
                                                              Человек должен делать то, что может сделать только он, всё остальное должна делать машина!
                                                                Цитата 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 Чат Исходников в СкайпеНе тормози, форум теперь здесь!Чат Исходников в Дискорде
                                                                                            Рад стараться :)
                                                                                            Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт.

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

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

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


                                                                                            Рейтинг@Mail.ru
                                                                                            [ Script Execution time: 0,4341 ]   [ 24 queries used ]   [ Generated: 15.10.19, 03:55 GMT ]