17.12.2006, 11:55
общий
это ответ
Здравствуйте, Белкин Алексей!
Ты создаешь MY_STRUCT локально для одной функции, поэтому при выходе из нее она удаляется. И соотвественно адрес указателя который ты присвоил LPARAM еще какой-то есть, но память там уже особождена и в ней либо находится уже другие данные, либо мусор.
Выделяй для своей структуры память динамически, чтобы она осталась после выхода из функции и естественно не забывай удалять где-нибудь в другом месте (в данном случае, удобно это сделать во 2-ой функции).
Приложение:
В функции1:MY_STRUCT * mmm = 0;mmm = new MY_STRUCT;mmm->mydword=100;myparam = (LPARAM) mmm;В функции2, которая вызывается после вызова функции1:MY_STRUCT * mystr = 0;mystr=(MY_STRUCT *)myparam;DWORD mynextdw = mystr->mydword;delete my_str;