Seite 1 von 1

Datenaustausch zwischen C++ und Purebasic

Verfasst: 09.03.2015 16:28
von SBond
Hallo Leute,

bin nach langer Zeit mal wieder im Forum :mrgreen:
Wisst ihr ob und wie man Daten zwischen C++ und PureBasic austauschen kann? Auf Arbeit programmiere ich mit C++ an einem Projekt und privat mit PureBasic. Meistens sind kleine Lösungen mit PureBasic schneller umzusetzten als mit C/C++ (z.B. Diagramme visualisieren oder Debugausgaben). Allerdings muss ich diese dann mit Daten aus der C++-Laufzeitumgebung füttern.

Bisher habe ich es mit einer quick-and-dirty-Methode gemacht:

1. C++ schreibt (bzw. überschreibt) kontinuierlich Daten in eine Datei (z.B. ini-Datei)
2. PureBasic liest diese Daten kontinuierlich ein
3. PureBasic verarbeitet Daten und stellt diese in irgendeiner Form dar.

Nun, das verwenden einer Datei ist nicht gerade eine elegante Möglichkeit Daten auszutauschen. Das geht doch bestimmt auch auf Arbeitsspeicherebene.
Bei den Daten handelt es sich immer um einfache Zahlen oder Zeichenketten, also keine C++-Objekte.

Habt ihr einen Tipp für mich?

viele liebe Grüße,
SBond

Re: Datenaustausch zwischen C++ und Purebasic

Verfasst: 09.03.2015 16:40
von Bisonte
Eventuell wäre Shared Memory das richtige Stichwort. (Zumindest für Windows hatte TS-Soft mal was ersonnen...)

Und falls das mit dem File bleiben soll.... eine winzige RAM Disk anlegen mit ImDisk und dort das schreiben und lesen machen um Platten zu schonen ;)
JHPJHP hatte im englischen Forum ein Interface für ImDisk gebastelt.

Re: Datenaustausch zwischen C++ und Purebasic

Verfasst: 09.03.2015 19:13
von SBond
vielen Dank. :mrgreen:

ich werde mir das mal anschauen :)


viele Grüße,
SBond

Re: Datenaustausch zwischen C++ und Purebasic

Verfasst: 10.03.2015 07:39
von Danilo
Warum machst Du keine DLL (entweder mit PB oder mit C++), die Du dann in das
jeweils Andere integrierst?

Re: Datenaustausch zwischen C++ und Purebasic

Verfasst: 10.03.2015 12:52
von SBond
ja. habe dahingehend auch schon einen Tipp bekommen.

das ist wahrscheinlich das beste :)