Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 1123
от 05.10.2008, 03:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 420, Экспертов: 41
В номере:Вопросов: 4, Ответов: 5

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 145421: Добрый вечер господа. Возникли несколько вопросов,помогите пожалуйста найти ответ: 1)Для чего предназначен AppWizard? 2)Что такое Workspace Viewer? Для чего он предназначен? Какие он содержит вкладки? 3)В чем отличие программирования дл...
Вопрос № 145433: <b> Здравствуйте! </b> Будьте добры, помогите в решении задачи по матрицам: <i> Дана матрица размера 5 x 10. Элемент называется локальным минимумом , если он меньше всех окружающих его элементов (справа/слева и сверху/снизу). Если окружающие э...
Вопрос № 145440: <u> Здравствуйте,уважаемые эксперты! </u> Помогите,пожалуйста,реализовать задачу на С++ <b> Дана матрица размера 5 x 10. Найти максимальный элемент среди минимальных элементов каждого столбца.</b> Заранее спасибо!...
Вопрос № 145446: Использую V C++2008. Компилю Win32 проект без юникода, только стандартные библиотеки Винды, рантайм либа встроенная. В Win98/ME отказывается запускаться: "Присоединённое устройство не работает" и "Приложение требует более новой версии В...

Вопрос № 145.421
Добрый вечер господа.
Возникли несколько вопросов,помогите пожалуйста найти ответ:
1)Для чего предназначен AppWizard?
2)Что такое Workspace Viewer? Для чего он предназначен? Какие он содержит вкладки?
3)В чем отличие программирования для Windows от программирования для DOS?
4)Что делает функция WinMain?
5)Что делает оконная процедура?
6)Каковы три основные части функции WinMain?
7)Что происходит, если Вы не обрабатывете явно сообщение внутри оконной процедуры?
Отправлен: 29.09.2008, 15:25
Вопрос задал: Иванов Роман Александрович (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Владимир (C4tnt)
Здравствуйте, Иванов Роман Александрович!

1) AppWizard - это мастер, создающий файлы программы по шаблону. Вы можете посмотреть на него в действии если попытаетесь создать новый проект. Кроме всего прочего в диалоге создания нового проекта можно обнаружить и шаблон для создания собственного AppWizard-а. Если вы его создадите, его можно будет выбирать из списка при создании нового проекта. Применяется это обычно при создании SDK к коммерческим проектам, часто в состав такого SDK входит AppWizard или хотя бы один проект-пример (всё это про MSVC++)

3) Программирование под Windows отличается в основном отсутствием 21h прерывания (и ему подобных) и наличием API функций. И ещё Windows работает в многозадачном режиме, но это ,в основном, важно для тех, кто пишет программные осциллографы и подобные вещи. Система в любой момент может приостановить выполнение вашего кода и переключиться на что-нибудь другое. Правда, она предпочитает это делать во время выполнения функции Sleep. В каждом длинном, а тем более бесконечном, цикле должен иногда быть вызов Sleep, иначе система всё время выполнения этого цикла будет считать ваше приложение зависшим. Всё остальное - технические различия. И не забывайте освобождать память и хэндлы, в Windows их блокирование чревато последствиями.

4) WinMain - то же,что и main в досе. Во всех win-программах есть dos-раздел кода, который пишет "This program cannot be run in dos mode" или что-то вроде этого. По этой причине пользуйтесь WinMain.

5) Обычно в WinMain располагается такой код (но не только он):

while (GetMessage(&msg, NULL, 0, 0)) //Пока к приложению не пришло сообщение WM_CLOSE
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) //Транслируем комбинации клавиш в нажатия кнопок (F1 в нажатие на кнопку help и т.п.)
{
TranslateMessage(&msg); //Разбор сообщения
DispatchMessage(&msg); //Находит оконную процедуру и вызывает её с параметром, соответст вующим сообщению.
}
}
соответственно, в оконной процедуре все сообщения должны быть обработаны или переданы стандартному обработчику. Вызов стандартного обработчика в MFC:

DefWindowProc(hWnd, message, wParam, lParam);

6) Странный вопрос. Как захотите - так и будет.
7) Если сообщение не обработано, но передано в стандартный обработчик - система сама с ним разберётся и обеспечит минимальную функциональность. Если сообщение не обработано совсем - приложение его проигнорирует. Тоесть, если ваше приложение будет игнорировать WM_CLOSE - его можно будет закрыть только с помощью CTRL+ALT+DEL

Предупреждение! Это всё я написал на тот случай, если вы хотите сами разобраться в механизмах работы MFC и Win приложений!

---------
Теперь к нашим ответам осталось лишь найти вопросы
Ответ отправил: Владимир (C4tnt) (статус: 5-ый класс)
Ответ отправлен: 29.09.2008, 17:57
Оценка за ответ: 5


Вопрос № 145.433
Здравствуйте!
Будьте добры, помогите в решении задачи по матрицам:
Дана матрица размера 5 x 10. Элемент называется локальным минимумом , если он меньше всех окружающих его элементов (справа/слева и сверху/снизу). Если окружающие элементы отсутствуют, то они считаются бесконечно большими. Заменить все локальные максимумы данной матрицы на единицы.
Заранее спасибо!!!
Отправлен: 29.09.2008, 18:07
Вопрос задал: Минин Руслан Васильевич
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sk0rp
Здравствуйте, Минин Руслан Васильевич!
Вот простая реализация с копией матрицы.

Приложение:

Ответ отправил: Sk0rp (статус: 5-ый класс)
Ответ отправлен: 29.09.2008, 19:15

Отвечает: realbustard
Здравствуйте, Минин Руслан Васильевич!
Код решения в приложении.
А вот если arr[i][j] локальный максимум, мы меняем его на 1, при этом arr[i][j+1] - не максимум. Но после arr[i][j]=1 , arr[i][j+1] может стать максимумом.

Приложение:

---------
Учись так, как-будто собираешься жить вечно; живи так, как-будто завтра умрешь (Отто фон Бисмарк)

Ответ отправил: realbustard (статус: 3-ий класс)
Ответ отправлен: 29.09.2008, 20:31


Вопрос № 145.440
Здравствуйте,уважаемые эксперты!
Помогите,пожалуйста,реализовать задачу на С++
Дана матрица размера 5 x 10. Найти максимальный элемент среди минимальных элементов каждого столбца.
Заранее спасибо!
Отправлен: 29.09.2008, 19:16
Вопрос задал: Смирнов Сергей Витальевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: realbustard
Здравствуйте, Смирнов Сергей Витальевич!
Код решения в приложении!!!

Приложение:

---------
Учись так, как-будто собираешься жить вечно; живи так, как-будто завтра умрешь (Отто фон Бисмарк)

Ответ отправил: realbustard (статус: 3-ий класс)
Ответ отправлен: 29.09.2008, 22:01


Вопрос № 145.446
Использую VC++2008. Компилю Win32 проект без юникода, только стандартные библиотеки Винды, рантайм либа встроенная. В Win98/ME отказывается запускаться: "Присоединённое устройство не работает" и "Приложение требует более новой версии Виндоус. Обновите вашу Виндоус". В Win2000/ХР/Виста работает.
Отправлен: 29.09.2008, 20:15
Вопрос задал: effort (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Владимир (C4tnt)
Здравствуйте, effort!

Попробуйте прописать WINVER, он менялся при переходе от MSVC 6 к следующим версиям. В шестой версии WINVER по умолчанию
был настроен под Windows 95, а потом это умолчание изменили на Windows XP.

Все WINVER`ы и остальные константы:

Windows Server 2003 _WIN32_WINNT>=0x0502 WINVER>=0x0502

Windows XP _WIN32_WINNT>=0x0501 WINVER>=0x0501

Windows 2000 _WIN32_WINNT>=0x0500 WINVER>=0x0500

Windows NT 4.0 _WIN32_WINNT>=0x0400 WINVER>=0x0400

Windows Me _WIN32_WINDOWS=0x0500 WINVER>=0x0500

Windows 98 _WIN32_WINDOWS>=0x0410 WINVER>=0x0410

Windows 95 _WIN32_WINDOWS>=0x0400 WINVER>=0x0400

Internet Explorer 6.0 _WIN32_IE>=0x0600
Internet Explorer 5.6 _WIN32_IE>=0x0560
Internet Explorer 5.01, 5.5 _WIN32_IE>=0x0501
Internet Explorer 5.0, 5.0a, 5.0b _WIN32_IE>=0x0500
Internet Explorer 4.01 _WIN32_IE>=0x0401
Internet Explor er 4.0 _WIN32_IE>=0x0400
Internet Explorer 3.0, 3.01, 3.02 _WIN32_IE>=0x0300

---------
Теперь к нашим ответам осталось лишь найти вопросы
Ответ отправил: Владимир (C4tnt) (статус: 5-ый класс)
Ответ отправлен: 30.09.2008, 01:56
Оценка за ответ: 4
Комментарий оценки:
Цитата из МСДН: "Beginning with Visual C++ 2008, Visual C++ does not support targeting Windows 95, Windows 98, Windows ME, or Windows NT." Тем не менее спасибо за ответ, он для меня был информативным. Для моей цели, видимо, нужна 2005-я версия студии.


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

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


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.3 RC 2 от 09.09.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное