tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
3347
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    MrCruiser MrCruiser ist offline Grünschnabel
    Registriert seit
    May 2003
    Beiträge
    3
    Dies mein erster Post hier und hab gleich ne Frage

    Ich will Daten eines C++-Programms über Shared Memory auslesen und in meinem Delphi-Programm weiter verarbeiten.
    Allerdings habe ich keine Ahnung wie das gehen soll... :-/
    Der Entwickler des Tools hat mir folgenden Ausschnitt des Codes geschickt, damit ich die Strukur sehe, allerdings kann ich damit nichts anfangen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
     struct GOTTV
    {
    int iVisual;
    int iState;
    int iChNumber;
    char cProgDateStart[10];
    int iProgTimeStart;
    char cProgDateEnd[10];
    int iProgTimeEnd;
    int iProgNamePos;
    int iProgSubPos;
    int iProgDescPos;
    BYTE data[65470];
    };

    Als Bemerkung hat er folgendes dazu geschrieben:
    Die ersten paar Variablen dürften klar sein.
    Das Ende ist interessant:
    Die int-Variablen, die *Pos heißen, enthalten Byte-Positionen. Und zwar
    die Position des Strings in dem Byte-Array am Ende der Struktur.

    Das hab ich deswegen so gemacht, weil diese Strings jeweils variabel
    lang sind. Und ich wollte nicht ab irgendeiner Länge abschneiden.
    Deswegen ist das so gelöst.

    Das Shared Memory Segment hat den Namen "GotTV Data Collector shared".
    Blickt einer von euch da durch?
     

  2. #2
    MrCruiser MrCruiser ist offline Grünschnabel
    Registriert seit
    May 2003
    Beiträge
    3
    *nach oben schieb*
     

  3. #3
    WieGehts WieGehts ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    130
    Hallo,
    so wirklich weiß ich die Antwort nicht. Aber zunächst wirst du wahrscheinlich einen Datentyp definieren müssen, welcher meiner Meinung wie folght aussehen sollte:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    Type
      TGotTV = Record
        iVisual,
        iState,
        iChNumber: Integer;
        cProgDateStart: Array[0..9] of Char;
        iProgTimeStart: Integer;
        cProgDateEnd: Array[0..9] of Char;
        iProgTimeEnd,
        iProgNamePos,
        iProgSubPos,
        iProgDescPos: Integer;
        data: Array[0..65469] of Byte;
      end;
    Ich weiß nicht wie C++ die Daten nach den beiden char..[10] ausrichtet. Ev. ist die Definition als
    Code :
    1
    
    TGotTV = [B]packed[/B] Record
    erforderlich. Von diesem Datentyp musst du jetzt eine Variable anlegen. Wie du dann die Daten in die Variable bekommst weiß ich leider auch nicht. Vielleicht findest du in der Delphihilfe unter ShareMem die nötigen Infos.
     

Ähnliche Themen

  1. Shared Memory in DLLs
    Von Cromon im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 17.04.10, 19:51
  2. Shared Memory
    Von martinpriebe im Forum .NET Café
    Antworten: 9
    Letzter Beitrag: 02.07.08, 09:01
  3. Shared Memory unter C#
    Von Zero_Base im Forum .NET Café
    Antworten: 2
    Letzter Beitrag: 02.04.06, 12:33
  4. Shared Memory eines C++-Programms auslesen
    Von MrCruiser im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 20.05.05, 11:49
  5. shared memory
    Von seydou im Forum Linux & Unix
    Antworten: 1
    Letzter Beitrag: 10.02.05, 20:16