Seite 1 von 3
Variablen austausch zwischen zwei Programmen?
Verfasst: 09.01.2009 10:28
von GreyEnt
Hallo Jungs,
Wenn ich ein Zweites Programm mittels RunProgramm(...) starte, kann ich dann mit den Befehlen ReadProgramString(...) bzw. WriteProgramString(...) Variable austauschen?
Oder gibt es evtl. eine Art SharedMemory wo beide Programme drauf zugreifen können?
Vielen dank schonmal.
MfG
Dieter
Re: Variablen austausch zwischen zwei Programmen?
Verfasst: 09.01.2009 11:22
von Kiffi
GreyEnt hat geschrieben:Oder gibt es evtl. eine Art SharedMemory wo beide Programme drauf zugreifen können?
jetzt rate mal, was an Treffern zurückkommt, wenn man hier im Board nach
'SharedMemory' sucht
Grüße ... Kiffi
Verfasst: 09.01.2009 11:56
von Kaeru Gaman
>> ReadProgramString(...) bzw. WriteProgramString(...)
>> SharedMemory
das kommt immer drauf an, was für Programme das sind und was du machen willst.
Verfasst: 09.01.2009 14:13
von GreyEnt
@Kiffi
sorry wuste nicht das SharedMemory ein regulärer PB Begriff ist.
Recht haste ja. Nicht wissen schützt vor strafe nicht.
@Frosch
Es geht um eine Anwendung mit WindowedScreen. Einen Map Editor.
Diese Anwendung braucht beim starten verdächtig lange zum aufbau der Gadgets. Und unter Linux bekomme ich es garnicht hin zu starten.
Da wolte ich mal probieren:
Ein Main-Programm was die ganze arbeit verrichtet. Und ein Screen-Programm was "nur" die Tiles darstellt.
Verfasst: 09.01.2009 14:26
von Kaeru Gaman
kannst du mir das projekt mal zukommen lassen?
... vielleicht find ich ja nen knackpunkt ...
bei deiner problemstellung brauchst du nicht unbedingt in zwei exe trennen,
du kannst das auch in einer Exe in zwei threads machen.
allerdings musst du drauf achten, dass du dann die Fenster-Geschichten in einen thread auslagerst,
(mit nem screen gabs da irgendwelche probleme, bin jetzt aber nicht sicher, welche)
und dass du ALLES was Fenster und Gadgets betrifft im SELBEN thread händelst.
Verfasst: 09.01.2009 17:53
von Ja!
Hi,
wenn ich meinen Senf zugeben darf..
Habe meinen Mapeditor einfach mit nem MDI-Gadget gemacht.
Funktioniert wunderbar u ist schnell.
Ohne Threads.
Aber ich vermute auch wie Kaeru, daß da iwo ein Fehler bei Dir hockt..
Gruß
Udo
Verfasst: 09.01.2009 18:11
von STARGÅTE
wahrscheinlich hat er FlipBuffers() und das ganze zeug zusammen mit den WindowsEvents in einer schleife, denn dann laggen die Gadget wirklich extrem.
es sollte immer so sein :
Code: Alles auswählen
Repeat
Repeat
Event = WaitWindowEvent(1)
; ...
Until Not Event
ClearScreen()
; ...
FlipBuffers()
; ...
Until ...
Verfasst: 09.01.2009 18:33
von GreyEnt
vielen dank.
hier erstmal der Link:
http://home.arcor.de/platzke/
Bitte auf MDVMapedit klcken.
@Stargate: Das muß ich mal sofort untersuchen. Mir ist ja so ziemlich alles zuzutrauen.
Verfasst: 09.01.2009 18:33
von ts-soft
STARGÅTE hat geschrieben:wahrscheinlich hat er FlipBuffers() und das ganze zeug zusammen mit den WindowsEvents in einer schleife, denn dann laggen die Gadget wirklich extrem.
es sollte immer so sein :
Code: Alles auswählen
Repeat
Repeat
Event = WaitWindowEvent(1)
; ...
Until Not Event
ClearScreen()
; ...
FlipBuffers()
; ...
Until ...
Wenns dann nur für Windows ist, wäre ein Timercallback noch
zuverlässiger. Dann flippt es auch, wenn zum Beispiel das Fenster
verschoben wird.

Verfasst: 09.01.2009 21:35
von Ja!
So hab mir Dein Programm mal angeschaut..
Erstens würde ich das Delay(30) rausmachen und besser
das WindowEvent mit Timeout (siehe Hilfe) verwenden.
Aber das Problem mit dem langsamen Start (Gadgetaufbau) liegt,
wie Stargate schon schrieb, tatsächlich an Deinem FlipBuffers.
Das solltest Du anders lösen..z.B. FlipBuffers nur alle paar ms aufrufen
oder noch besser, Du rufst es nur gezielt auf, und zwar sobald der Screen
geändert wurde, also ein Tile gesetzt wurde o.ä.
Gruß
Udo