Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » eine dll von 2 programmen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
13.10.2006, 14:46 Uhr
RHBaum



shared memory is IMHO die schnellste variante (laufzeittechnisch, ned entwicklunstechnisch ^^)....

"pipes" werden auch vom BS zur verfuegung gestellt, zur IPC brauchst aber Named pipes ... und die kann glaub ich nicht jedes windows. schau dir die doku dazu an ....

ne noch andere alternative waere TCP/IP ... wenns uebern localhost geht, gehts nich mal auf die karte runter sondern bleibt im tcp/ip stack ... performancetechnisch aber weit hinter der shared memory variante ....


Zitat:

damit habe ich dann auch keine zugriffsprobleme mehr, wer gerade wann auf den speicher zugreift


Wo ist denn da dein problem ?
musst du den shared memery paritiell sperren ?
oder langt es wenn du den shm im stueck sperrst, dann kannstg recht einfach mit named events arbeiten unter windows wohlgemerkt ....

Ciao ....

Dieser Post wurde am 13.10.2006 um 14:47 Uhr von RHBaum editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
13.10.2006, 19:41 Uhr
Spacelord
Hoffnungsloser Fall


CreateFileMapping und co. wären auch ne Überlegung.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/memory/base/sharing_files_and_memory.asp

Gruß Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
14.10.2006, 09:58 Uhr
pitrie



hmmm ...

naja, meine lösung sollte schon net die langsamste sein!
jedoch weis ich halt immernoch net, wie ich den speicher in dem shared mempry reservieren soll, den ich für die queue benötigen würde. da die dll in c geschrieben ist muss ich speicher reservieren und das nimmt der compiler net an, weil es keine konstante ist!

ist denn eine named pipe so langsam?

gruß
pitrie
--
Gruß Steff
___
Der Optimist sieht in jedem Problem eine Aufgabe.
Der Pessimist sieht in jeder Aufgabe ein Problem.
http://autoexport.sunbird-kalender.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
14.10.2006, 10:02 Uhr
Spacelord
Hoffnungsloser Fall


Zeig doch mal nen bißchen Code dass wir uns nen besseres Bild machen können.

PS: Und beschreib mal ganz konkret was du tun möchtest.Was für Daten sollen wie verarbeitet werden?

Gruß Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.

Dieser Post wurde am 14.10.2006 um 10:03 Uhr von Spacelord editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
14.10.2006, 10:19 Uhr
pitrie



ja, aber code bringt ja net so viel ... geht ja eher um eine analyse und die machbarkeit.

ich will von einer exe-anwendung einer dll daten zur verfügung stellen.

dadurch war meine erste lösung das shared memory:
dazu habe ich in der dll eine funktion store(), die ich unter extern "C" deklariere und somit aus der exe-anwendung aufrufen und daten übergeben kann, die dann von einem anderen programm die die dll benutzt gepollt werden über die funktion get().
da hatte ich jedoch das problem wegen den verschiedenen instanzen da ich in der exe anwendung die dll einbinde und das zweite programm ja ebenso = verschiedene instanzen.
und daten muss ich ja logischerweise im speicher ablegen. deswegen hat des mit dem shared memory nicht funktioniert, da wie gesagt in einem shared memory kein speicher angelegt werden kann.

dann habe ich meine zweite lösung angefangen. named pipe
da habe ich einfach in der exe-anwendung eine namedpipe erstellt und mit writefile schreibe ich die daten rein. in der dll erstelle ich einen client und lese mit readfile die daten aus.
somit habe ich auch gleich eine "queue"
das funktioniert einwandfrei, jedoch frage ich mich jetzt, ob das perfomance probleme geben kann?

gruß
pitrie
--
Gruß Steff
___
Der Optimist sieht in jedem Problem eine Aufgabe.
Der Pessimist sieht in jeder Aufgabe ein Problem.
http://autoexport.sunbird-kalender.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
14.10.2006, 10:22 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,
CreateNamedPipe ist nicht überall funktionsfähig, u.A. funktioniert das erstellen der namedpipe nur auf den serverbetriebsystemen, alle anderen können nur zu einer bestehenden verbinden. Oder machst du was anders?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
14.10.2006, 10:38 Uhr
pitrie



also meine exe muss nur ab windows nt laufen ....

dann dürfte es doch keine probleme geben, oder?
--
Gruß Steff
___
Der Optimist sieht in jedem Problem eine Aufgabe.
Der Pessimist sieht in jeder Aufgabe ein Problem.
http://autoexport.sunbird-kalender.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
14.10.2006, 18:30 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


nur wenns ein windows NT/2k/2k3 server ist gibts keine probleme, die normalen winnt workstation, 2k und xp können kein CreateNamedPipe benutzen, das schlägt dann fehl (hatte das selbst mal getestet).

Nimm shared memory, da gibts auch bibliotheken für. Dann gibts da keine zugriffsprobleme.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
14.10.2006, 19:54 Uhr
pitrie



also ich habe meine auf xp programmiert tund das funktioniert einwandfrei.
einfach die win32-api einbinden und die funktion "CreateNamedPipe" daraus verwenden und des klappt einwandfrei

kann das auch bei xp prof und home unterschiedlich sein?

also ich hatte ziemlich nach shared memory gesucht gehabt!
kannst du da eine bib anbieten oder empfehlen?

gruß
pitrie
--
Gruß Steff
___
Der Optimist sieht in jedem Problem eine Aufgabe.
Der Pessimist sieht in jeder Aufgabe ein Problem.
http://autoexport.sunbird-kalender.de
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: