String zur Laufzeit deklarieren!

Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.

Moderatoren: crack, Krüsty, Marwin

Antworten
yaXay
Newbie
Beiträge: 3
Registriert: Donnerstag 23. Oktober 2003, 23:20

Beitrag von yaXay » Donnerstag 23. Oktober 2003, 23:28

Hey alle zusammen,

ich moechte waehrend der Laufzeit einen String deklarieren, und zwar weil ich erst dann die tatsaechliche laenge kenne! Ich vermute, dass ich HeapAlloc und HeapFree bemuehen muss. Aber ich haette am liebsten ein konkretes Beispiel. Koennte sich jemand die Muehe machen, oder hat jemand einen Link?

Vielen Dank!

MfG,
yaXay

CDW
Alter Hase
Beiträge: 62
Registriert: Donnerstag 2. Oktober 2003, 17:17
Kontaktdaten:

Beitrag von CDW » Freitag 24. Oktober 2003, 18:10

heapalloc /heapfree soll ja unter win32 kein unterschied mehr sein .. hab aber schon vor langer zeig gelesen und bin mir nicht mehr so sicher... jedenfalls:

Code: Alles auswählen

invoke GlobalAlloc,GMEM_MOVEABLE or GMEM_DDESHARE ,textsize
        .if eax==0 
       ;fehlerbehandlung/meldung
        	ret
        .endif
        mov  hMemory,eax
        invoke GlobalLock,hMemory
       .if eax==0
         ;fehlerbehandlung 
       .endif
        mov pMemory,eax
      ;beispiel:
        invoke GetDlgItemText,hWin,ID_PROGRAM_INPUT,pMemory,textsize
       ;weiterer Code, was man damit halt macht...     
  

       ;speicher freigeben
        invoke GlobalUnlock,hMemory        
        invoke GlobalFree,hMemory 


yaXay
Newbie
Beiträge: 3
Registriert: Donnerstag 23. Oktober 2003, 23:20

Beitrag von yaXay » Freitag 24. Oktober 2003, 21:17

Hey,

so leicht hab ich mir das gar nicht vorgestellt..

Dankeschoen,
yaXay

Antworten