Toon posts:

[Win32/C++] In 2 processen 1 classinstance gebruiken *

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik zit met het volgende probleem...

Ik moet een programma maken, met daarin 2 functieheaders die precies hetzelfde zijn. (mexfunction van matlab) Deze functies staan in apparte files (aan de hand van de filename bepaalt matlab de functienaam voor in matlab) Nou wil ik 2 functies maken, 1 voor opnemen en 1 voor afspelen. Deze functies moeten wel hetzelfde object gebruiken dat alle steaming beheert!

Ik dacht zelf aan een oplossing, om gewoon 2 apparte dll's te maken van die files met de functie erin zodat dit al niet in elkaars scope ligt. Dan wou ik 1 dll maken waarin het object zit met dat alles beheert zoals ik al zei. Deze 2 dll's moeten dus gebruik maken van diezelfde instance van dat beheer-object! Maar als ik het gewoon zo gebruik neem ik aan dat iedere dll die gebrui maakt van die gedeelde dll een eigen instantie ervan maakt. Dat is dus niet de bedoeling. Ik heb al dingen gelezen van "#pragma data_seg" maar dit heeft te veel constraints. Er worden namelijk veel pointers gebruikt binnen dit object.

Heeft iemand anders een idee hoe ik 2 functies met die kop:

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])

gebruik kan laten maken van 1 object? Ik heb zo'n gevoel dat ik over iets simpels heen kijk... heb ik wel vaker :D...

thanx alweer, mzzls

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 13-05 14:28

koli-man

Bartender!!!!

Als ik je verhaal goed begrijp dan kun je misschien wat meer met een singleton - pattern.

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


Verwijderd

Topicstarter
koli-man schreef op 16 februari 2004 @ 15:11:
Als ik je verhaal goed begrijp dan kun je misschien wat meer met een singleton - pattern.
Ja dacht ik in eerste instantie ook, MAAR...

alle 2 de dll's maken een eigen instantie van die dll... als ik bij designpatterns goed heb opgelet werkt dat singleton alleen maar binnen de scope van het programma.

Toch???

stel je voor je programmeert een simple programmaatje met het singleton pattern erin. een exe. en je start die exe 2 x op. Dan heeft dat singleton geen zin... elke applicatie heeft dan inderdaad maar 1 instantie, maar niet dezelfde.

Het moet denk ik iets worden in de trend van een pointer naar een stukje shared memory. maar het enige wat ik hier over vind is dat #pragma data_seg en memory mapped files... maar het is niet de bedoeling dat de harddisk erbij gebruikt wordt. dan wordt het echt te langzaam allemaal...

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 13-05 14:28

koli-man

Bartender!!!!

Dan heb ik inderdaad je verhaal niet goed begrepen, want bij het singleton pattern werkt het in derdaad binnen de scope van het programma. Jammer voor je dat je geen distributed java(java 2) hebt gedaan afgelopen half jaar. ;) Want daar ging dat volgens mij over.

[ Voor 8% gewijzigd door koli-man op 16-02-2004 15:23 ]

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Verwijderd schreef op 16 februari 2004 @ 15:20:
[...]

Het moet denk ik iets worden in de trend van een pointer naar een stukje shared memory. maar het enige wat ik hier over vind is dat #pragma data_seg en memory mapped files... maar het is niet de bedoeling dat de harddisk erbij gebruikt wordt. dan wordt het echt te langzaam allemaal...
Lees dan nog eens goed, memory mapped files gaan namelijk alleen via de disk als je dat expliciet aangeeft. Normaliter is het gewoon een blok shared geheugen tussen 2 processen en daarmee lightning zippy fast.

Professionele website nodig?


Verwijderd

Topicstarter
curry684 schreef op 16 februari 2004 @ 15:40:
[...]

Lees dan nog eens goed, memory mapped files gaan namelijk alleen via de disk als je dat expliciet aangeeft. Normaliter is het gewoon een blok shared geheugen tussen 2 processen en daarmee lightning zippy fast.
Ik na het lezen van de volgende regel:
"Memory-mapped files (MMFs) offer a unique memory management feature that allows applications to access files on disk in the same way they access dynamic memory—through pointers."

op: http://msdn.microsoft.com...ib/html/msdn_manamemo.asp

Dacht ik dat memory mapped files alleen geschikt was voor het laden van bijvoorbeeld tekstfiles in het geheugen. Ik moet dus echt een flinke rits objecten doorpasen. Dat heeft dus niets met files ofzo te maken.

Of is dat kan dat memorymapped gedoe ook voor die doeleinden gebruikt worden???

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

The file on disk can be any file that you want to map into memory, or it can be the system page file.
If hFile is INVALID_HANDLE_VALUE, the calling process must also specify a mapping object size in the dwMaximumSizeHigh and dwMaximumSizeLow parameters. In this case, CreateFileMapping creates a file mapping object of the specified size backed by the operating-system paging file rather than by a named file in the file system. The file mapping object can be shared through duplication, through inheritance, or by name. The initial contents of the pages in the file mapping object are zero.
:)

Professionele website nodig?


Verwijderd

Topicstarter
Damn.. :D

Zal er morgen weer eens wat beter naar kijken... thanx
Pagina: 1