Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage Entwicklung Assembler

GELÖST

Programm hängt sich nach Schleife auf....

Mitglied: supernicky

supernicky (Level 1) - Jetzt verbinden

30.05.2011, aktualisiert 16:12 Uhr, 3221 Aufrufe, 5 Kommentare

Windowsanwendung mit SetPixel Funktion

Hallo,

vielleicht kann mir hier jemand helfen...

ich habe ein Fenster (leer) und dort sollen vor der Funktion ShowWindow, ein paar schwarze Punkte gezeichnet werden.
Dafür habe ich eine Schleife erstellt die 100 mal durchlaufen werden soll.

invoke ShowWindow,hWnd, SW_SHOWNORMAL
invoke GetDC, hWnd ;Handle des DC der Form holen und in formdc speichern
mov formdc, eax

xor ecx,ecx ;ecx löschen
mov ecx, 220 ;ecx mit 220 belegen
mov tmp, ecx ;ecx in die Variable tmp kopieren
mov ecx, 100 ;ecx mit 100 belegen (für die Schleife)
malen:
invoke SetPixel, formdc,tmp,1, colr ;tmp sollte bei 220 beginnen und bei 120 enden

dec tmp ;immer eins subtrahieren
loop malen ;Schleife wiederholen solange ecx ungleich Null ist


invoke UpdateWindow,hWnd ;Fenster nach dem Zeichnen anzeigen


Was herauskommt ist ein schwarzer Strich am oberen Fensterrand...(wie gewünscht)
aber dannach hängt sich das Programm auf... Woran liegt das?

Die Linie geht bis zum Rand.. also hätte tmp ja den Wert 0 oder sogar kleiner...
Da ecx aber nur 100 hat (=100 Schleifendurchgänge) sollte tmp an Ende auch nur 220 - 100 = 120 haben... und demnach noch 120 Pixel vom Rand entfernt sein.

Wo ist denn hier der Fehlerteufel????

Gruß, Nicky
Mitglied: 76109
30.05.2011 um 16:13 Uhr
Hallo supernicky!

Kommentar wieder entfernt, da sich der Beitragstext während des Schreibens vollständig geändert hat

Gruß Dieter
Bitte warten ..
Mitglied: supernicky
30.05.2011 um 16:16 Uhr
Hallo,

ich habe den Beitrag geändert... mein Edit-Feld geht jetzt... auch wenn noch keine Änderungen (außer über Funktionen) möglich sind...

Vielleicht kannst du mir bei dem oberen Problem auch helfen...

Gruß, Nicky
Bitte warten ..
Mitglied: 76109
30.05.2011 um 16:50 Uhr
Hallo supernicky!

Bezugnehmend auf den vorhergehenden Beitragstext. Hast Du für die Variable 'formdc' und 'tmp' anstelle von
01.
formdc db ? 
02.
tmp db ?
jeweils ein DWord für EAX/ECX reserviert ?
01.
formdc dd ? 
02.
tmp dd ?
Gruß Dieter
Bitte warten ..
Mitglied: supernicky
30.05.2011 um 23:28 Uhr
Hallo Dieter,

ja das habe ich bei allen Variablen gemacht..

sobald ich die Zeile
"invoke SetPixel, formdc,tmp,1, colr "
ungültig mache, läuft das Programm fehlerfrei... nur die Linie oben fehlt dann.

Ich habe diese Schleife direkt hinter der CreateWindow - Funktion zum erstellen des Fensters.. und noch vor der UpdateWindow-Funktion, ist es vielleicht der falsche Ort dafür??

Nicky
Bitte warten ..
Mitglied: supernicky
05.06.2011 um 07:19 Uhr
Es war wohl tatsächlich der falsche Ort für die Zeichenfunktion.
Ich habe die Schleife hinter den BN_CLICK in der Nachrichtenschleife gelegt und dann geht es...
Bitte warten ..
Ähnliche Inhalte
Router & Routing
Fritz!Box 6490 Cable hängt in Dauerreboot Schleife
gelöst Frage von ketanest112Router & Routing5 Kommentare

Hallo liebe Community, jetzt wende ich mich mal an euch. Vielleicht habt ihr ja einen Tipp. Mein Setup zuhause ...

Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Windows Server
Terminal Server 2012 RemoteApp Programm Assistent hängt
Frage von rico1211Windows Server

Unser Terminal Server 2012 (R1) hängt beim Assistent zum hinzufügen von neuen Programmen. Das Fenster "RemoteApp Programme auswählen" läuft ...

Microsoft Office
Vereinfachen einer Schleife
Frage von Jens1975Microsoft Office1 Kommentar

Hallo, ich bin neu und versuche mich jetzt mit VBA Ich möchte die Funktion Autofill durch eine Schleife ersetzen. ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...

Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall9 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...