Español
Ensamblador Foro

Problema con String-Rückgabe

 
- Página 1 -



Matthias
Arlt
Mi ersten Versuche con Ensamblador gestalten se dank Franks Einführungskurs mejor como pensamiento...! Nun Yo aber folgendes Problema o. nen Denkfehler drin:

Un ASM-Rutina ermittelt una String y schreibt esta en una Zona. Das Auslesen klappt con invoke MessageBox , 0, addr buffer, usw. bestens. Wenn Yo nun en lugar de Edición en uno Messagebox el String en el Profano-Programa weiterverarbeiten voluntad, como übergebe Yo esta korrekt? (addr buffer va sí sólo una invoke...)

Matthias
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
12.12.2006  
 



 
- Página 1 -



Michael
Dell
Ach así, hier podría una einfaches Volver txt# después de mov eax, para3 reichen. Si el no funzt declariere txt2# con el gleichen werten como txt# y escribir Volver txt2# y después de el Función imprimir cadena$(txt2#,0).
 
Salu Michael...

Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! 
12.12.2006  
 




Jörg
Sellmeyer
Müßte que aquí no hdl&,spalte&,Addr(txt#)) heißen?
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
12.12.2006  
 




Matthias
Arlt
So, todos Varianten durchprobiert (txt#...txt2#...addr(txt#)...), aber Ergebnis desafortunadamente como gehabt. Während bajo Profano7 immerhin todavía unbrauchbare Signo con cadena$(txt#,0) ausgelesen voluntad, passiert bajo XProfan después de el Messagebox rein garnichts. Versuche con invoke MemCopy... schlagen wegen Zugriffsverletzung ebenfalls fehl. Das Rätseln va also más...
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
12.12.2006  
 




Frank
Abbing
lea eax, para3
mov lvi.pszText, eax
mov lvi.cchTextMax, 256


muss heissen:

m2m lvi.pszText, para3
mov lvi.cchTextMax, 256


oder

mov eax, para3
mov lvi.pszText, eax
mov lvi.cchTextMax, 256


para3 es sí el Zeiger en una String y el Listviewmessage esperado auch una Zeiger en una String.

mov eax, para3
AsmEnd


Ist eigentlich Quatsch, porque el Returnwert = txt# es.
Übrigens kannst du mejor el Debugger anstelle uno Messagebox nutzen, en Zahlenwerte oder Cuerdas anzuzeigen. Probier veces:

PrintDec eax


oder

PrintStringByAddr para3


P.S.: Prima, dass dir mein Kurs gefallen ha.
 
12.12.2006  
 




Matthias
Arlt
@Franco
Besten Dank, funktioniert perfekt ! Hast me muy geholfen !!!

Ansonsten klappt el DLL-Erstellen ya bastante bien. Yo habe Su XPIA quasi como Standalone-Tool en PRFellow eingebunden y bastle me así en bastante komfortable Weise de el Editor heraus mi DLL (para actualmente todavía Profano7) zusammen. Ggf. lade Yo el veces como PRFellow-Erweiterung hier hoch...

Matthias
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
12.12.2006  
 




Frank
Abbing
Prima, el kann determinado el una u otros gebrauchen. PrFellow erfreut se sí siempre todavía grosser Beliebtheit.
 
12.12.2006  
 




Matthias
Arlt
Yo habe inzwischen todavía una weiteres Problema con un Stringvergleich. Folgender Code funktioniert zwar como Solcher, liefert aber siempre ungleich zurück. Auch si Pufferinhalte definitiv igual son:

...
cld
mov ecx,sizeof Buffer2
lea esi,Buffer1
lea edi,Buffer2
repe cmpsb

jnz ungleich
jz igual
...

Posesiones ya unterschiedlichste Varianten durchprobiert, aber desafortunadamente erfolglos...!?

Matthias
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
17.12.2006  
 




Frank
Abbing
repe cmpsb es veraltert. Tomar anstelle dessen más bien el APIs lstrcmp(), o. lstrcmpi(). Sicherer y viel más rápido.
 
17.12.2006  
 



 
- Página 2 -



Matthias
Arlt
Kurioses Comportamiento...

Moin Franco
Gracias primero para el Referencia. Werd Yo entonces probieren. Aber el eigentliche Problema liegt scheinbar ya antes el Eintritt en el Vergleich. Cuestión Yo después de el zweiten LB_Gettext el Pufferinhalt de, Yo en Prev TTest y Next Test posición. Cuestión Yo hingegen einzeln después de cada LB_Gettext de, stimmt lo aber todavía. Keine Idea, wodurch se el Pufferinhalt ändert...???
Das restos auch así, si yo stattdessen lokale Puffer verwende. Jedenfalls bekommt dadurch el Vergleich sí siempre ungleiche Daten angeboten. Und dasmacht con algo ratlos...


¿Puede Usted Usted (y me) el erklären?

Gracias y Saludo
Matthias
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
18.12.2006  
 




Frank
Abbing
Das hier se el Fehler auslösen. So reservierst du sólo 1 Byte:

.data?
Prev db ?
Next db ?

Machs así:

.data?
Prev db 512 dup(?)
Next db 512 dup(?)

512 bedeuten hier 512 Bytes, el reserviert voluntad.
 
18.12.2006  
 




Matthias
Arlt
Gracias Franco, genau el war lo auch ! Mit el dup Tuve mich todavía no angefreundet o. dessen Verwendung mißverstanden (Desde que sí eigentlich nichts verdoppeln quería...). Das erklärt nun auch igual otro aufgetretene Fragen !
Auch macht se el Vergleich mittels API wesentlich freundlicher, porque gewohnter. Schön, si uno así rápidamente fachkundige Ayuda bekommt !!!

Besten Dank
Matthias
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
18.12.2006  
 




Frank
Abbing
 
18.12.2006  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

18.659 Views

Untitledvor 0 min.
p.specht21.02.2019
Wilfried21.05.2016
Peter Max Müller10.10.2014
iF28.04.2013
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie