Fortsetzung von:
Link
---------------------------------------------------------------------
Ich habe die folgenden beiden Probleme
1. Problem
Wie kann ich _AssembleIt2 einen String zugänglich machen, welcher Nullbytes beeinhaltet?
Mit folgendem Programm
#include <assembleit2_64.au3>
#cs _numberofpixel
use32
org $PTR_SOURCE_ASMCODE ;only needed for assembleit debugger
mov edi,[esp+4] ;pointer
mov ecx,[esp+8] ;anzahl
_ASMDBG_() ;debug-gui anzeigen
mov eax,0
_next:
mov ebx,[edi+eax]
_ASMDBG_() ;debug-gui anzeigen
add eax,1 ;next pixel
cmp eax,ecx
jne _next
ret ;return, returns eax
#ce
; $string="1234567890"
$string="123"&Chr(0)&"4567890"
$len=StringLen($string)
Local $ret = _AssembleIt2("uint", "_numberofpixel", "str", $string, "int", $len)
Alles anzeigen
erfolgt dieser Abbruch:
Ersetze ich in assembleit2_64.au3 die Zeile
If Eval("Type" & $n) <> "" Then $scriptstring &= ",'" & Eval("Type" & $n) & "'," & Eval("Param" & $n)
durch die Zeile
If Eval("Type" & $n) <> "" Then $scriptstring &= ",'" & Eval("Type" & $n) & "'," & "$Param" & $n
erfolgt zwar kein Abbruch, jedoch werden dem Assemblerprogramm nur die ersten drei Zeichen (bis zum Nullbyte) zur Verfügung
gestellt.
Am besten wäre es meines Erachtens, wenn man die Adresse des Strings ermittel könnte und diese dann dem Assemblerprogramm zur
Verfügung stellen könnte. Aber wie ermittle ich die Adresse eines Strings?
2. Problem
Wenn das Assemblerprogramm als Ergebnis ein Feld erarbeitet, wie kann ich das dem aufrufenden Autoit-Programm zur Verfügung stellen?
Vielen Dank schon einmal für eine Antwort !