Thread View: pl.comp.lang.asm
5 messages
5 total messages
Started by Remek
Fri, 24 Aug 2007 06:08
Identyfikator i uchwyt
Author: Remek
Date: Fri, 24 Aug 2007 06:08
Date: Fri, 24 Aug 2007 06:08
46 lines
2124 bytes
2124 bytes
Witam Napisałem mały programik testowy w Masm32 korzystając z tutoriala Iczeliona rozdz. 22 - Przejęcie klasy okna: http://www.i-lo.tarnow.pl/edu/inf/prg/win32asm/index.html. Nieco go rozbudowałem wstawiając dwa buttony i procedurki konwertujące liczbę dziesiętną do bin/okt/hex, wpisujące wyniki do kolejnych kontrolek w poniższy sposób: invoke SetWindowTextA, hwndEdit+4, addr Bufor3 invoke SetWindowTextA, hwndEdit+8, addr Bufor4 invoke SetWindowTextA, hwndEdit+12, addr Bufor4 I program się wysypuje. Działa dobrze do dwóch kontrolek: invoke SetWindowTextA, hwndEdit+4, addr Bufor3 invoke SetWindowTextA, hwndEdit+8, addr Bufor4 ;invoke SetWindowTextA, hwndEdit+12, addr Bufor4 Okazało się, że uchwyt trzeciej kontrolki nakłada się na ID buttona "Oblicz" (Button1ID equ 3) i powstaje pętla. Pytania: Jak znaleźć w binarce identyfikatory? Uchwyty są jeśli się nie mylę nadawane dynamicznie, więc jak to się dzieje, że program sypie się za każdym uruchomieniem? Czy nie jest to przypadkiem wina kompilatora? Zmiana identyfikatorów buttonów pomogła, ale gdzie pewność, że w pewnych warunkach program się nie sypnie? było: Button1ID equ 3 Button2ID equ 4 zmieniłem na: Button1ID equ 30 Button2ID equ 31 Pozdrawiam Remek
Re: Identyfikator i uchwyt
Author: Lopez
Date: Fri, 24 Aug 2007 15:57
Date: Fri, 24 Aug 2007 15:57
38 lines
1858 bytes
1858 bytes
Remek napisał(a): > Witam > > Napisałem mały programik testowy w Masm32 korzystając z tutoriala > Iczeliona rozdz. 22 - Przejęcie klasy okna: > > http://www.i-lo.tarnow.pl/edu/inf/prg/win32asm/index.html. > > Nieco go rozbudowałem wstawiając dwa buttony i procedurki konwertujące > liczbę dziesiętną do bin/okt/hex, wpisujące wyniki do kolejnych kontrolek > w poniższy sposób: a czy linie hwndEdit DD 6 DUP(?) tez zaktualizowales? > Okazało się, że uchwyt trzeciej kontrolki nakłada się na ID buttona > "Oblicz" (Button1ID equ 3) i powstaje pętla. Skad taki wniosek, przeciez to calkiem odrebne abstrakcje. > Pytania: > > Jak znaleźć w binarce identyfikatory? > Uchwyty są jeśli się nie mylę nadawane dynamicznie, więc jak to się > dzieje, że program sypie się za każdym uruchomieniem? co znaczy sypie sie? > Czy nie jest to przypadkiem wina kompilatora? Tak. kompilator zawsze wszystkiemu jest winny :P. Lepiej pokaz caly kod, bo inaczej to tylko wrozenie z fusow. -- Pozdrawiam Lopez
Re: Identyfikator i uchwyt
Author: Remek
Date: Sat, 25 Aug 2007 01:01
Date: Sat, 25 Aug 2007 01:01
31 lines
1872 bytes
1872 bytes
Użytkownik "Lopez" napisał: > > Okazało się, że uchwyt trzeciej kontrolki nakłada się na ID buttona > > "Oblicz" (Button1ID equ 3) i powstaje pętla. > > Skad taki wniosek, przeciez to calkiem odrebne abstrakcje. Do takiego wniosku doszli lepsi ode mnie fachowcy. W pewnym sensie jego prawdziwość potwierdza fakt, że po zmianie identyfikatorów jest dobrze (ale to tylko moja wiara, bo sam tego nie zidentyfikowałem). > co znaczy sypie sie? "Program wykonał... itd.", następnie blue screen i pomaga tylko twardy reset. Po tym wszystkim zdarzają się poważne szkody w systemie i FAT, tak że radzę być ostrożnym. > Tak. kompilator zawsze wszystkiemu jest winny :P. Wiem :) > Lepiej pokaz caly kod, bo inaczej to tylko wrozenie z fusow. Przepraszam za przeoczenie. Już to naprawiam. Tu jest hnade.zip zawierający moje źródło, oraz pliki potrzebne do kompilacji i uruchomienia: http://remek62.republika.pl/Tymcz/tymcz.html Pozdrawiam Remek
Re: Identyfikator i uchwyt
Author: Lopez
Date: Sat, 25 Aug 2007 09:30
Date: Sat, 25 Aug 2007 09:30
30 lines
1918 bytes
1918 bytes
Remek napisał(a): > Użytkownik "Lopez" napisał: > >>> Okazało się, że uchwyt trzeciej kontrolki nakłada się na ID buttona >>> "Oblicz" (Button1ID equ 3) i powstaje pętla. >> >> Skad taki wniosek, przeciez to calkiem odrebne abstrakcje. > > Do takiego wniosku doszli lepsi ode mnie fachowcy. W pewnym sensie jego > prawdziwość potwierdza fakt, że po zmianie identyfikatorów jest dobrze > (ale to tylko moja wiara, bo sam tego nie zidentyfikowałem). > Byles blisko, a wlasciwie trafiles w setno, ale nie myl pojecia uchwytu i identyfikatora, bo wprowadzasz w blad. Najpierw tworzysz 4 kontrolki o identyfikatorach 0-3 a potem dw butony i ID 3,4 i masz oczywista kolizje bo w manualu http://msdn2.microsoft.com/en-us/library/ms632679.aspx jest dobitnie wyraznie napisane: hMenu [in] Handle to a menu, or specifies a child-window identifier depending on the window style. (...) The application determines the child-window identifier; it must be unique for all child windows with the same parent window. -- Pozdrawiam Lopez
Re: Identyfikator i uchwyt
Author: Remek
Date: Sat, 25 Aug 2007 10:15
Date: Sat, 25 Aug 2007 10:15
16 lines
1438 bytes
1438 bytes
Użytkownik "Lopez napisał: > Byles blisko... > Najpierw tworzysz 4 kontrolki o identyfikatorach 0-3 > a potem dw butony i ID 3,4 i masz oczywista kolizje Ogromne dzięki za wyjaśnienie. Teraz sprawa wydaje się oczywista. Nie wziąłem pod uwagę, że identyfiaktory kolejnych kontrolek tworzone są w pętli od zera do 3 przez inc ebx. Przyjąłem (jak widać błędnie), że jak na wejściu jest zero, to identyfikator nie jest tworzony. Jeszcze raz dziękuję i pozdrawiam. Remek
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads