Hallo, ich frickel an einem Problem rum, daß ich eigentlich für recht einfach hielt - aaaber...
Aus einem Hauptprogramm starte ich einen weiteren Prozess, den ich selbst geschrieben & als .prc kompiliert habe.
Als Parameter übergebe ich dem 2. Prozess die Adresse eines zuvor gefüllten Speicherbereiches.
Diesen Speicherbereich soll dann der 2. Prozess auswerten & ggf. etwas anderes hineinschreiben. Aber schon das Auslesen will mir einfach nicht gelingen, ich sehe aber nicht den Grund dafür.
Von der Logik her ist doch alles korrekt, aber irgendwo ist da ein Denkfehler.
Hab mal 2 Testcodes gebaut, die eigentlich funzen sollten - tun sie aber nicht:(
Code1: das Hauptprogramm (als .exe kompilieren)
'********************************************************************************
'dieser Code heißt hprog & wird zur .exe kompiliert & ruft proz1 auf
Window 600,400
WindowTitle "Hauptprogramm hprog als .exe kompiliert"
Declare ber#
Dim ber#, 5 'speicherbereich für den longwert
Long ber#,0 = 12345678 'bereich mit einer Zahl belegen
print "Die Bereichs-Speicheradresse ist: "; ber#
print "Der Longwert in diesem Bereich: "; Long(ber#,0)
Print "Start von 'proz1' nach Taste..."
waitkey
Shell @GetDir$("@") + "\\hprog.exe proz1.prc " + Str$(ber#) 'proz1.prc starten & als parameter die Adresse des gefüllten speicherbereichs
print "So! Taste = Ende"
WaitKey
end
Alles anzeigen
Code2: der zweite Prozess (als .prc kompilieren)
'*********************************************************************************
'dieser Code heißt proz1 & wird nur zur .prc kompiliert & wird von hprog gestartet
Window 500,300
WindowTitle "Zweiter Prozess proz1 als .prc kompiliert"
Declare z&, t$
z& = Val(Par$(2)) 'speicheradresse als long speichern (3. parameter)
Print "Die Speicheradresse ist: "; z&
Print "Der Longwert ab dieser Adresse: "; long(z&,0) 'den zuvor von hauptprog geschriebenen longwert auslesen
print "Taste = Ende"
WaitKey
end
Alles anzeigen
Habt ihr 'ne Idee, warum das nicht so geht & vor allem: wie es gehen könnte?