AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Daten/Speicherbereiche zwischen applikationen austauschen
Thema durchsuchen
Ansicht
Themen-Optionen

Daten/Speicherbereiche zwischen applikationen austauschen

Ein Thema von themason26 · begonnen am 5. Jan 2004 · letzter Beitrag vom 5. Jan 2004
Antwort Antwort
themason26

Registriert seit: 27. Nov 2003
9 Beiträge
 
#1

Daten/Speicherbereiche zwischen applikationen austauschen

  Alt 5. Jan 2004, 14:06
hallo,

ich suche eine möglichkeit (wenns geht nur windows api-funktionen) mit denen ich zwischen zwei laufenden applikationen daten (binär wie text, z.b. audio-streams) austauschen kann. es würde mir schon reichen das ich einen speicher-bereich alloziere und diesen für eine weitere (mehrere) anwendungen sharen kann. die übertragung sollte in zwei richtungen funktionieren. tcp/ip (mit localhost) ist mir zu overhead-lastig, datei-schreiben-lesen dürfte zu langsam sein, und die daten per send/post-message zu übertragen ist auch etwas gewagt. hat jemand eine dazu eine lösung ? (hab gehört mit den ATOMS soll was zu machen sein)

gruß
mason
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Daten/Speicherbereiche zwischen applikationen austausche

  Alt 5. Jan 2004, 15:49
WM_COPYDATA für kleine Datenmengen und Memmory Mapped Files für größere würde ich vorschlagen. Oder du kuckst mal hier rein: http://www.luckie-online.de/tutorials/assarbad/ in das Hook Tutorial, weleches auch IPC behandelt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Daten/Speicherbereiche zwischen applikationen austausche

  Alt 5. Jan 2004, 15:52
Wenn du Klassen magst, ich hab mal angefangen, eine MemoryMappedFile-Klasse zu basteln. Wenn du willst, kannst du sie weiterbasteln.
Angehängte Dateien
Dateityp: pas memoryfile.pas (2,8 KB, 30x aufgerufen)
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
themason26

Registriert seit: 27. Nov 2003
9 Beiträge
 
#4

Re: Daten/Speicherbereiche zwischen applikationen austausche

  Alt 5. Jan 2004, 16:21
Zitat von Luckie:
WM_COPYDATA für kleine Datenmengen und Memmory Mapped Files für größere würde ich vorschlagen. Oder du kuckst mal hier rein: http://www.luckie-online.de/tutorials/assarbad/ in das Hook Tutorial, weleches auch IPC behandelt.
erstmal danke für die infos...
Also mit memorymapped (also "dateien-aufmachen-reinschreiben-zumachen-auslesen" wenn ich es richtig verstanden hab) fällt flach da ich mich beim senden der daten in einer audio-routine befinde (die mit 48/96khz dahinrauscht), welche meherere streams (max. 16 PRO audio-applikation ) gleichzeitig an eine Scope-Applikation schicken (quasi als "Debug"-Möglichkeit ) soll und ich nicht pro block jeweils eine neue datei kreieren/aufmachen kann. (Blockgröße ist system bzw. soundkarten-abhängig). Ich habe es selbst mal mit einer selbstgebastelten Klasse versucht die die Daten per SendMessage übermittelt. Funzt auch ... wenn man einen 2gHz Prozessor hat und nur einen audio-stream überträgt .
Ich meine es muß ja auch mit Windows-APIs eine Möglichkeit geben.
Also GlobalAlloc (mit handle und pointer) hat nichts gebracht, und direkt in eine Applikation schreiben hat Windows (bzw. die MMU) ja niet so gerne.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Daten/Speicherbereiche zwischen applikationen austausche

  Alt 5. Jan 2004, 18:27
Zitat von themason26:
Also mit memorymapped (also "dateien-aufmachen-reinschreiben-zumachen-auslesen" wenn ich es richtig verstanden hab)
Nicht ganz. Das besondere ist ja, dass die Datei nicht existiert sondern nur im Arbeitsspeicher liegt. Bei einer MMF allozierst dir einfach einen Speicherblock mit der Größe deiner Wahl im oberen Teil des 32Bit-Speicherbereichs (Kernelspeicher), der wegen der gemeinsamen Nutzung dieses Teils von allen Prozessen zugänglich ist.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
themason26

Registriert seit: 27. Nov 2003
9 Beiträge
 
#6

Re: Daten/Speicherbereiche zwischen applikationen austausche

  Alt 5. Jan 2004, 18:42
Aaah so !

Des ist ja mal richtig interessant. Also die Tiefen der API-Funktionen bieten ja echt ne ganze ecke an möglichkeiten.
Will nur hoffen das ich jemandem auch mal so schnell und kompetent helfen kann.

gruß
rene
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz