Español
Ensamblador Foro

Problema con String-Rückgabe

 

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  
 




Jörg
Sellmeyer
Si usted el String en un Zona hast, müßtest Usted ihn con texto$=String$(B#,Addr&) auslesen puede. Wobei Addr& = 0 es, si la String al Anfang des Bereichs es.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
12.12.2006  
 




Michael
Dell
In el Regel es Buffer sí una DWord (Largo) el en una Speicherbereich zeigt.
Dann debería como letzter Befehl mov eax, buffer reichen.

Yo persöhnlich sería en XProfan una Zona oder una con Chr$(0) gefüllten String$ como zusätzlichen Parámetro transferencia y esta entonces z.B.: con invoke MemCopy... el Daten transferencia, el ha entonces el Vorteil el Usted allen Speicher en el Función para Ende hin liberación kannst. Dabei kannst Usted entonces con eax todavía una Fehlercode zurückgeben, así el auch en el WinAPI häufig gemacht.
 
Salu Michael...

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




Matthias
Arlt
@Jörg
Genauso pensamiento Yo en efecto, aber...

declarar txt#
dim txt#,256

Wo also liegt mein Fehler ???

@Michael
Gracias, Yo werds veces con MemCopy versuchen. Tiempo sehen...
 
WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia
12.12.2006  
 




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  
 




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.680 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