информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Атака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Find Common Dialog 08.06.01 03:26  Число просмотров: 852
Автор: LBH Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> тут сразу фиг поймешь. я не понял - lpfr->lpstrFindWhat
> вообще пуст, или MessageBox не выводит на экран?
пуст, смотрел через watch

> и еще, если ты пишешь через АПИ, то MessageBox - у тебя
> какой АПИшный или МФСишный?
mfc'шный, имхо практически одинаковые

> еще через что ты передаешь FINDREPLACE, через SendMesage
> или PostMessage. если PostMessage, то проследи, чтобы твой
ловлю сообщение в WindowProc MFC'шном

> объект существовал в памяти в момент обработки мессаг. к
> примеру такое может вызвать ошибку :
нет, там в lParam находится указатель на область памяти содержащую FINDREPLACE структуру,сл. выделять ничего не надо, если есть мсдн или платформсдк - глянь там, мож что увидишь чего я не увидел

>
> FINDREPLACE find;
> ..................
> ::PostMessage(hWnd, WM_FINDMESSAGE, 0, (LPARAM)&find);
>
> когда мессага дойдет, от структуры может и ничего не
> остаться.
>
> тут куча причин могут быть, пока в голову пришли только
> эти.
> и еще не понял как это - "хотя половина элементов по адресу
> lprf содержат верные значения" - а другая половина где
размер структуры верный, размер поля lpstrFindWhat верный (там отдельная переменная за это отвечает), адрес в памяти тоже верный, а текста нету

> пропадает? и что содержит поле Flags до отправки сообщения
> и в момент получения? по моему, все таки, если "половина"
> теряеться по дороге, то твоя структура FINDREPLACE
> высвобождаеться из памяти и ты получаешь какой то
> непонятный мусор.



void CLBHMoneyAccountDlg::OnFind()
{
WM_FINDMESSAGE=RegisterWindowMessage(FINDMSGSTRING);

ZeroMemory(&FindReplace,sizeof(FindReplace));
FindReplace.lStructSize=sizeof(FindReplace);
FindReplace.lpstrFindWhat = "";
FindReplace.wFindWhatLen=80;

FindReplace.Flags=FR_NOMATCHCASE|FR_NOWHOLEWORD;
FindReplace.hwndOwner=this->GetSafeHwnd();

FRWin.m_hWnd = FindText(&FindReplace);

}


LRESULT CLBHMoneyAccountDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{

if(message==WM_FINDMESSAGE)
{

LPFINDREPLACE lpfr= (LPFINDREPLACE)lParam;

if (lpfr->Flags & FR_FINDNEXT)
{
MessageBox(FindReplace.lpstrFindWhat);
}
}
else return CDialog::WindowProc(message, wParam, lParam);

return NULL;
}
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach