передача указаталя на структуру через CreateDialogParam

Тема в разделе "WASM.BEGINNERS", создана пользователем ZaikinM, 21 ноя 2006.

  1. ZaikinM

    ZaikinM New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    16
    Добрый день проблемма такая
    MSVS 2003.NET
    Project type Win32 without mfc atl.

    Есть модуль main где собственно и происходт следующее

    LoginInfo m_ptrLoginNfo;
    RtlZeroMemory(&m_ptrLoginNfo,sizeof(LoginInfo));
    hAboutDlg = CreateDialogParam(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_LOGIN),NULL,DlgProcLogin,(LPARAM)&m_ptrLoginNfo);//Сдесь смотрим дебагером все в порядке структура проинициализированна, все красиво. по F10 переходим во второй модуль

    login.cpp
    BOOL CALLBACK DlgProcLogin(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
    {
    LoginInfo* inf=(LoginInfo*)lParam;//вот сдесь указатель теряется и после этой иницализации он светит в BAdPtr.

    Что я сделал не так ? Заранее благодарен.
     
  2. P_F

    P_F New Member

    Публикаций:
    0
    Регистрация:
    27 мар 2006
    Сообщения:
    116
    Адрес:
    Russia
    а msg == WM_INITDIALOG?
     
  3. DeeoniS

    DeeoniS New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2004
    Сообщения:
    132
    ну у меня иногда были подобные глюки с указателями. Возиожно это фокусы студии, т.к. у меня это исчезло после ребута студии и полной перекомпиляции.
     
  4. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.347
    а у остальных это исчезает при:
    Код (Text):
    1. BOOL CALLBACK DlgProcLogin(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
    2. {
    3.     switch(msg)
    4.     {
    5.     case WM_INITDIALOG:
    6.         LoginInfo* inf=(LoginInfo*)lParam;
    7.         break;
    :)
     
  5. DeeoniS

    DeeoniS New Member

    Публикаций:
    0
    Регистрация:
    6 авг 2004
    Сообщения:
    132
    не надо пожалуйста выдирать из контекста, я имел в виду не именно этот случай, а непонятные вещи которые VC2003 иногда делает с указателями
     
  6. ZaikinM

    ZaikinM New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    16
    Слушай я думал просто что ненужно писать очевидные вещи может тебе еще и pch вылажить ? Я показал основное, что бы была понятна суть
     
  7. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Может, m_ptrLoginNfo обьявлена как локальная переменная?

    ZaikinM
    Нам продолжать угадывать или ты соизволишь выложить очевидные вещи? Обычно в этих самых вещах кроются самые позорные баги.
     
  8. ZaikinM

    ZaikinM New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    16
    rmn

    Извеняюсь за то что вел себя как упертый идот. На самом деле так и есть, как вы сказали. Тока я вот понять не могу почему при событии WM_INITDIALOG она инициализируется а до этого нет ?
     
  9. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Так и дожно быть. Потому что в других сообщениях исплоьзуется lParam дял передачи других данных.