#pragma data_seg("shared")
-
Hola leute
wenn ich in einer dll einen shared memory bereich einrichte, kann ich da auch einen std::vector verwenden ? oder funtioniert das wegen dem intern angelegten dynamischen speicher nicht ?
Meep Meep
-
ja richtig, das funktioniert dann genau deswegen nicht.
gibt aber libs die sowas in der art anbieten, z.b. wurde vor einiger zeit eine "shared memory" lib (die IIRC auch container bzw. allocator beinhaltet) in die boost aufgenommen. ist allerdings nicht im "aktuellen" release (1.34) enthalten, könntest du aber mal gucken wie "fertig" diese "shared memory" lib schon ist, und ob sich die sinnvoll für deine zwecke einsetzen lässt.
-
Meep Meep schrieb:
Hola leute
wenn ich in einer dll einen shared memory bereich einrichte, kann ich da auch einen std::vector verwenden ? oder funtioniert das wegen dem intern angelegten dynamischen speicher nicht ?
Meep Meep
A)Die STL Templates lassen es zu mit eigenen Allokatoren zu parameterisieren.
template<class T,class A=allocator<T> > vector { /***/ };Diese Allokatoren sorgen für die Allokation und Lokation der ( dynamisch ) hinzugefügten T-Objekte, also des Inhalts der vectoren.
Da könntest Du einen eigenen übergeben der das shmem mnutzt .
B)Um den vector selbst auch dort abzulegen könntest Du
operator new()in einem abgeleiteten Template oder in einer von einer Template-Instanz
abgeleiteten Klasse überschreiben.Beides erklärt Stroustrup sehr genau.
Grüsse
*this
P.S.: isLoesung( A, B ) ?
return std::string(":-)") : return std::string("???");
