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:

Filemapping für mehrere Integer und auch Strings...wie ?

 
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
arduno



Anmeldungsdatum: 12.05.2011
Beiträge: 252

BeitragVerfasst am: 26.05.2016, 16:16    Titel: Filemapping für mehrere Integer und auch Strings...wie ? Antworten mit Zitat

Hallo, guten Tag.
Ich habe ein Filemappaing zum Senden und Empfangen welches auch funktioniert.
Ich habe 1000 Byte reserviert im Filemapping.
Wie kann ich da bitte jetzt mehrere Integer/Strings hinereinander reinbringen und diese auch wieder auslesen. Ich verstehe es nicht, wie ich den Zeiger von *lMap verstellen muss dafür.

Danke.
Gruss

Senden:
Code:

#Include "windows.bi"

Dim as HANDLE hMap
dim as Integer ptr lpMap

hMap = CreateFileMapping( cast(HANDLE,INVALID_HANDLE_VALUE), _
                          null, _
                          PAGE_READWRITE, _
                          0, _
                          1000, _
                          "MyFileMapping" )

lpMap = MapViewOfFile( hMap, _
                       FILE_MAP_ALL_ACCESS, _
                       0, _
                       0, _
                       0 )

do
  *lpMap += 1
  Locate 3,1,0
  print *lpMap;
  sleep 100
loop until inkey = chr(27)


Empfangen:
Code:

#Include "windows.bi"

dim as HANDLE hMap
dim as Integer ptr lpMap

hMap = OpenFileMapping( FILE_MAP_ALL_ACCESS, _
                        false, _
                        "MyFileMapping" )

lpMap = MapViewOfFile( hMap, _
                       FILE_MAP_ALL_ACCESS, _
                       0, _
                       0, _
                       0 )
do
  locate 3,1,0
  print *lpMap;
loop until inkey = chr(27)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 26.05.2016, 20:09    Titel: Antworten mit Zitat

Hi,
habe ich schon mal 2008 ausprobiert.
siehe: https://www.freebasic-portal.de/code-beispiele/dateien-laufwerke/filemapping-125.html,
ist aber nicht so einfach wie dein Listing.
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
arduno



Anmeldungsdatum: 12.05.2011
Beiträge: 252

BeitragVerfasst am: 26.05.2016, 21:08    Titel: Antworten mit Zitat

Hallo danke.

Habe jetzt die Lösung gefunden.
Einmal Filemapsend und einmal Filemapempfang.
Funktioniert einwandfrei.
Habe auch noch ein Programm wo die Daten auch wieder mit Filemap zurückgesendet werden.

Eine Startüberprüfung kann noch reingesetzt werden.

Filemapsend muss zuerst gestartet werden.

Filemapsend:
Code:

#Include "windows.bi"
#Include "fbgfx.bi"
#include "vbcompat.bi"
Using FB

Dim as HANDLE hMap
DIM AS INTEGER PTR buffer
buffer = ALLOCATE( 1000 )

screenres 320,200,32,1,4
WindowTitle "filemap-send"
ScreenControl SET_WINDOW_POS, 50, 40

hMap = CreateFileMapping( cast(HANDLE,INVALID_HANDLE_VALUE), _
                          null, _
                          PAGE_READWRITE, _
                          0, _
                          1000, _
                          "MyFileMapping" )
buffer = MapViewOfFile( hMap, _
                       FILE_MAP_ALL_ACCESS, _
                       0, _
                       0, _
                       0 )


Do
  buffer[0] = buffer[0] + 1
  buffer[1] = buffer[1] + 5
 
  Locate 3,1,0
  print buffer[0]
  print buffer[1]
  Sleep 100
loop until inkey = chr(27)


Filemapempfang:
Code:

#Include "windows.bi"
#Include "fbgfx.bi"
#include "vbcompat.bi"
Using FB

dim Shared as HANDLE hMap
DIM Shared AS INTEGER PTR buffer
buffer = ALLOCATE( 1000 )

screenres 320,200,32,1,4
WindowTitle "filemap-empfang"
ScreenControl SET_WINDOW_POS, 400, 40

hMap = OpenFileMapping( FILE_MAP_ALL_ACCESS, _
                        false, _
                        "MyFileMapping" )
buffer = MapViewOfFile( hMap, _
                       FILE_MAP_ALL_ACCESS, _
                       0, _
                       0, _
                       0 )
do
  locate 3,1,0
  print buffer[0]
  print buffer[1]
Loop until inkey = chr(27)
Nach oben
Benutzer-Profile anzeigen Private Nachricht 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