• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Vs несколько базовых вопросов.

  • Автор темы Rompas
  • Дата начала
R

Rompas

Здравствуйте,
сразу же прошу прощения, если мои вопросы покажутся наивными или пустыми, но волею судьбы мне потребовалось перейти на VS MFC Pro 2005.

в связи с этим у меня появились вопросы:
1) что является аналогом Билдера Application.ProcessMessages() в VC MFC?
типа чтобы интерфейс не замирал. Сам я не нашел. или только потоки решают это?

2)перенос ресурсов из одного проекта в другой (MFC).
скажем так, сделал я проект (не MDI),
наделал там диалогов,
классы под них,
теперь же вопрос в том как это всё хозяйство,
а именно диалоги (ресурсы) перенести в новый проект?
сам не догоняю, а кто рядом не знают.

заранее спасибо!
 
E

European

1) что является аналогом Билдера Application.ProcessMessages() в VC MFC?
типа чтобы интерфейс не замирал. Сам я не нашел. или только потоки решают это?
По хорошему нужно обрабатывать сообщения самостоятельно, используя PeekMessage, TranslateMessage и DispatchMessage. Пример есть тут: . Но если хочется очень просто, то можно вызвать метод OnIdle у CWinApp
2)перенос ресурсов из одного проекта в другой (MFC).
Если ресурсы одинаковые, то простой заменой файлов все решается. Если ресурсы разные, то я в ручную правлю ресурсные файлы. Про инструменты не знаю :)
 
R

Rompas

спасибо за ответ!
а можно поподробнее про переделку ресурсов?
и что такое "если ресурсы одинаковые"?

у меня такая ситуация, есть уже работающий MFC проект, к нему нужно добавить два диалога из другого работающего MFC проекта.
 
H

Hroft

Я, когда переносил диалоговые окна, делал так (быть может есть другой вариант).
1) Открывал новый проет (куда переношу), в этом же проекте открывал файл ресурсов старого проекта (откуда переношу). Простым копированием переносил шаблоны созданных мною диалоговых окон.
2) Потом в новый проект подключал файлы, реализции диалоговых окон.
3) Когда пытаешься обработать кнопку в шаблоне диалога, студия предлагает выбрать класс или создать новый. Вот там я выбирал существующий класс (только что подключеный).
Итого все шаблонны и классы перенеслись и были связаны. Всё заработало.
P.S. если не будет копироваться на прямую, то можно отдельно создать ресурс (типа переходничёк), и сначала в него скопировать, а потом из него.
 
E

European

у меня такая ситуация, есть уже работающий MFC проект, к нему нужно добавить два диалога из другого работающего MFC проекта.
Создаешь в новом проекте пустые диалоги с ID равными ID диалогов в старом проекте, заменяешь код диалога в *.rc файле, в resource.h нового проекта добавляешь ID контролов из старого проекта
 
R

Rompas

хорошо, спасибо, я буду пробовать переносить диалоги.

но так и не понял про замену Application.ProcessMessages() из Билдера в студии.
можно ли пример?
 
R

Rompas

спасибо, сам сглупил...
уже в первом ответе было как диспатчить сообщения.

воткнул у себя такой код:
[codebox]
void DoProcessMessages(void){
while (true)
{
MSG m_msgCur;
while (!::peekMessage(&m_msgCur, NULL, NULL, NULL, PM_NOREMOVE))
{
return;
}
if (!::GetMessage(&m_msgCur, NULL, NULL, NULL)) break;
::TranslateMessage(&m_msgCur);
::DispatchMessage(&m_msgCur);
}
}
[/codebox]

взято отсюда:
[post="0"]"Шаг 52 - PeekMessage()"[/post]
 
R

Rompas

а вот еще вопрос, про перенос приложения.
когда я перенес приложение на другой комп, то он мне написал много чего и не смог запустить программу.
Я так понимаю, что туда еще нужно притащить MFC библиотеки.
какие файлы должен я таскать с приложением если сделано это в MFC?
 
E

European

При распространении приложения проще использовать статическую линковку с MFC, чем таскать библиотеки вручную, ИМХО. Способ линковки меняется через свойства проекта
 
R

Rompas

спасибо!
а вот тут еще у меня вопросец,
у борланда есть механизм событие и обработчик события для классов,
я ими пользовался для синхронизации классов (визуальных и не только)
TNotifyEvent() ...

а что есть подобное в Vs MFC?
1) Send/PostMessages - сообщения, но мне нужно оперировать с не визуальными классами.
2) Callback?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!