Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.189.120] |
|
Страницы: (3) 1 2 [3] все ( Перейти к последнему сообщению ) |
Прикр. сообщ.
#1
,
|
|
|
В связи с некоторыми вопросами, поступившими за последнее время, решил создать тему и прояснить ситуацию по поводу наполнения нашей базы знаний.
Итак, на форуме существует две категории разделов: Какие исходники нужны форуму: Что нужно, что бы ваш код попал в FAQ или в раздел Наши Исходники: Естественно, крайне желательно, что бы код был написан в хорошем стиле, без магических чисел, магических конструкций и неинформативных названий переменных Что вы получаете за пополнение базы знаний форума: Прежде всего, благодарность участников форума Так же, за каждую тему в FAQ автору полагается от 1-го до нескольких DGM , на усмотрение модератора раздела. Виртуальные деньги форума всегда отображаются в вашем профиле, рядом с рейтингом. Кроме того, вы можете за них приобрести один из товаров, доступных в нашем магазине DigiMania. Спрашивайте, что не ясно, постараюсь ответить |
Сообщ.
#31
,
|
|
|
Цитата artsb @ B.V., вроде бы не часто про это спрашивают, но, ИМХО, будет полезно иметь такую функцию в исходниках. Как считаете? Я, честно говоря, не очень понял, чем она отличается от LoadString.. В отличие от последней не смотрит языковой идентификатор? Собственно, на C++ оно было бы и предпочтительнее И да, было бы неплохо так же пройтись немного по C++ Exceptions. Подробно писать в рамках одной статьи не вижу смысла, лучше коротко суть, а при желании, подробности вынести в отдельную статью Цитата Eric-S @ Правда вот не помню куда потерял класс получающий информацию о модуле. Но что-то такое писал. Получение названия, версии, описания, языка ресурсов, имени разработчика... Я не совсем это имел ввиду, это уже чтение ресурсов, использование GetFileVersionInfo и сопутствующих Я же имел ввиду чтение инфы из PE-заголовка посредством DbgHelp Цитата Eric-S @ Но я думаю, что такое надо разбирать по отдельности. 1. Локализация и компиляция сообщений . 2. Трассировка и распечатка стека. 3. перехват исключений и Диагностическое окно с информацией об ошибке. Согласен, каждая тема тянет на отдельную статью в ФАК, но было бы так же неплохо иметь обобщенный пример создания отчета |
Сообщ.
#32
,
|
|
|
Цитата B.V. @ Я, честно говоря, не очень понял, чем она отличается от LoadString.. В отличие от последней не смотрит языковой идентификатор? Разница большая. У нас с ЫукпШ на эту тему дискуссия была в той же ветке. Почитайте там. А то мне лень всё заново объяснять Я ж поэтому и предлагаю добавить её в исходники, т.к. там не всё так просто. |
Сообщ.
#33
,
|
|
|
Цитата artsb @ У нас с ЫукпШ на эту тему дискуссия была в той же ветке. Почитайте там Все, что я смог выцепить из вашей дискуссии, это Цитата artsb @ я сейчас не буду рассказывать что и как. Я прочитал на эту тему много информации на форумах и накатал функцию Может, вкратце объяснишь, что в твоей функции особенного? |
Сообщ.
#34
,
|
|
|
Ок. В общем, суть в том, что строки в ресурсах хранятся не просто так, а блоками по 16 штук. Поэтому, простой вызов:
FindResource(hInstance, StringID, RT_STRING); ничего не даст. Так как строки с идентификатором StringID в ресурсах нет. Нужно определить, в каком блоке находится строка. Получить этот блок. И уже из него вытащить саму строку. Мало кто об этом знает. Обычно все сразу пытаются скормить FindResource свой идентификатор строки и ничего не находят. Вот поэтому, я и предложил эту функцию добавить в исходники |
Сообщ.
#35
,
|
|
|
Цитата artsb @ Мало кто об этом знает. Обычно все сразу пытаются скормить FindResource свой идентификатор строки и ничего не находят. ибо не многие пытаются прочитать, что такое RT_STRING.... |
Сообщ.
#36
,
|
|
|
Ой! Помню, как в давние времена, намучался, выковыривая стандартное сообщение об исключении!
Сейчас уже подробностей не помню. Но пришлось юзать RtlFindMessage, так как FormatMessage сообщение видел, но отдавать не хотел. Вспомнил, даже жутко стало. А ведь не пользуюсь этим кодом. Лениво подключать. И вообще, подозреваю, что сейчас, в ядре, тех сообщений нет в помине. Под хрюшей такие потрясающе информативные окошки были... "программа попыталась read память по адресу xxx" А на семёрке, всё не так. Окно для юзеров и даже придушить его системой не реально. Только из своей программы, исключительно для её процесса. |
Сообщ.
#37
,
|
|
|
Цитата ElcnU @ ибо не многие пытаются прочитать, что такое RT_STRING.... Так вот тож. |
Сообщ.
#38
,
|
|
|
Цитата artsb @ Нужно определить, в каком блоке находится строка. Получить этот блок. И уже из него вытащить саму строку. Тогда оформи, плиз, отдельным постом с пояснениями, в ФАК не уйдет, но в разделе Наши Исходники определенно лишним пример не будет |
Сообщ.
#39
,
|
|
|
B.V., проверяйте
|
Сообщ.
#40
,
|
|
|
Неплохо. Но я ожидал что-то вроде этого, т.е. немного более подробное описание технических моментов
Доработаешь или принимать в текущем виде? |
Сообщ.
#41
,
|
|
|
Цитата B.V. @ Неплохо. Но я ожидал что-то вроде этого, т.е. немного более подробное описание технических моментов Доработаешь или принимать в текущем виде? ага, я по инерции тоже с этим исходником сравнил |
Сообщ.
#42
,
|
|
|
Цитата B.V. @ Доработаешь или принимать в текущем виде? Ок. Прочитаю статью и доработаю |
Сообщ.
#43
,
|
|
|
Исправил. Проверяйте
|
Сообщ.
#44
,
|
|
|
О, вот это то, что надо
|
Сообщ.
#45
,
|
|
|
Рад стараться
|