Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

DOSMEMGET

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
software



Anmeldungsdatum: 19.02.2007
Beiträge: 14

BeitragVerfasst am: 20.02.2007, 21:16    Titel: DOSMEMGET Antworten mit Zitat

DOSMEMGET , gibt es so einen ähnlichen befehl auch in freebasic um auf das ram zuzugreifen?

mfg
_________________
freebasic lebt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 20.02.2007, 21:26    Titel: Antworten mit Zitat

Öhm, naja, also, nimm dir ne Variable, dimensionier die unendlich groß und schon hast du ein Stück Speicher... ansonsten musst du dich mit der Kernel32.dll und MemMaps befassen... wenn du Windows nutzt...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
software



Anmeldungsdatum: 19.02.2007
Beiträge: 14

BeitragVerfasst am: 20.02.2007, 22:17    Titel: Antworten mit Zitat

ich möchte mit einem gestarteten programm irgendwo im speicher bystes ablegen und von einem anderen gestarteten programm wieder einlesen.

gibt es denn nirgendwo im computer diesen bereich, den ich von freebasic einfach erreiche?

mfg
_________________
freebasic lebt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 20.02.2007, 22:20    Titel: Antworten mit Zitat

Ja, da musst du ne Speichermap reservieren, und so flaggen, dass sie Publik ist. Irgendwo hat ich da ein Beispiel... bei Gelegenheit such ich das ma, kann aber spät werden happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 20.02.2007, 22:21    Titel: Antworten mit Zitat

Volta hatte dazu für Windows mal ein Beispiel gepostet. Stichwort: Memory Mapped Files. (Oder so. xD)
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
software



Anmeldungsdatum: 19.02.2007
Beiträge: 14

BeitragVerfasst am: 20.02.2007, 22:22    Titel: Antworten mit Zitat

danke, werde mal suchen.
mfg
_________________
freebasic lebt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
software



Anmeldungsdatum: 19.02.2007
Beiträge: 14

BeitragVerfasst am: 20.02.2007, 22:23    Titel: Antworten mit Zitat

pmedia danke für dein angebot, wäre toll wenn du so etwas findest.
mfg
_________________
freebasic lebt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
PMedia



Anmeldungsdatum: 14.08.2006
Beiträge: 2847

BeitragVerfasst am: 20.02.2007, 22:32    Titel: Antworten mit Zitat

Es ist zwar Profan, erfüllt aber den gleichen Zweck, sind nur 4 oder 5 Zeilen eigentlicher Code und sind schnell übertragen, da Profan sehr schnell verstehbar ist.
Und hier isser (aber nur weil ich wusste wo der Code war):

Code:

' PROFAN²-NT-TEAM-Vorlage
' Autor: Sven Schmidts, concept/design
' Titel: SharedMemory
' Beschreibung: Das Programm ermöglicht die gemeinsame Nutzung von Speicher. Anwendungen
'               können so leichter Daten untereinander austauschen (Strings).
' Anmerkung: Benötigt RGH-PROFAN² ab Version 7.0
' Copyright © 2000-2001 Sven Schmidts, schmidts@cdesign.de
'
' Prozeduren :
' - OpenMap MapName$, Size&
'  Öffnet ein Mapping. MapName$ bezeichnet den Namen des Mappings.
'  Size& bezeichnet die max. Größe in Byts, die gespeichert werden.
'  Defaultwert ist 4096 Bytes sein, maximal ca 2 GByte. Anwendungen, die
'  gemeinsam einen Speicher nutzen wollen, müssen als MapName$ dasselbe angeben.
' - CloseMap
'  Schliesst das Mapping wieder
' - ReadStrFromMap
'  Liest den momentanen Inhalt als String aus
' - WriteStrToMap Text$
'  Schreibt den String Text$ in das Mapping
'

Def CreateFileMapping(6) !"KERNEL32","CreateFileMappingA"
Def UnmapViewOfFile(1) !"KERNEL32","UnmapViewOfFile"
Def MapViewOfFile(5) !"KERNEL32","MapViewOfFile"
Def CloseHandle(1) !"KERNEL32","CloseHandle";

Declare HandleMap&, ViewPointer&, Buffer#

Proc OpenMap
  Parameters MapName$, Size&
  HandleMap& = CreateFileMapping($FFFFFFFF,0, 402653188,0,Size&,Addr(MapName$))
  If HandleMap& <= 0
    MessageBox("Fehler beim erstellen des Mappings !","Fehler",16)
  Else
    ViewPointer& = MapViewOfFile(HandleMap&, 983071, 0, 0, 0)
    Case ViewPointer& = 0 : MessageBox("Fehler beim erstellen des Views !","Fehler",16)
  Endif
EndProc

Proc CloseMap
  UnMapViewOfFile(ViewPointer&)
  CloseHandle(HandleMap&)
EndProc

Proc ReadStrFromMap
  ' Lesen
  Declare Ergebnis$, OldBuffer&
  If ViewPointer& <> 0
    Dim Buffer#, 512
    OldBuffer& = Buffer#
    Buffer# = ViewPointer&
    Ergebnis$ = String$(Buffer#,0)
    Buffer# = OldBuffer&
    Dispose Buffer#
  EndIf
  Return Ergebnis$
EndProc

Proc WriteStrToMap
  ' Schreiben
  Parameters Text$
  Declare OldBuffer&
  If ViewPointer& <> 0
    Dim Buffer#, Len(Text$)+1
    OldBuffer& = Buffer#
    Buffer# = ViewPointer&
    String Buffer#,0 = Text$
    Buffer# = OldBuffer&
    Dispose Buffer#
  EndIf
EndProc


' Beispiel Programm
' Compileren und zweimal starten, austausch vom Text mittels "Lesen" / "Schreiben"
''cls
''Declare E%, Ende%, Lesen%, Schreiben%, Edit%
''Let Ende%= CreateButton(%Hwnd,"Ende",10,10,90,20)
''Let Lesen%= CreateButton(%Hwnd,"Speicher lesen",110,10,120,20)
''Let Schreiben%= CreateButton(%Hwnd,"Speicher schreiben",240,10,140,20)
''Let Edit% = CreateEdit(%Hwnd,"",10,40,600,22)
''
''OpenMap "TestMap", 4096
''
''WhileNot E%
''SetFocus(Edit%)
''WaitInput
''  If GetFocus(Ende%)
''    Let E% = 1
''  ElseIf GetFocus(Lesen%)
''    ReadStrFromMap
''    SetText Edit%,$(0)
''  ElseIf GetFocus(Schreiben%)
''    WriteStrToMap GetText$(Edit%)
''  EndIf
''''Wend
''CloseMap


Wie am Kopf zu erkennen ist: DIES IST NICHT EIN PROGRAMM VON MIR!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
software



Anmeldungsdatum: 19.02.2007
Beiträge: 14

BeitragVerfasst am: 20.02.2007, 22:57    Titel: Antworten mit Zitat

he, danke für deine mühe. werde ihn umsetzen.

mfg
_________________
freebasic lebt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz