tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
774
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Lexx84 Lexx84 ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    12
    Hallo,
    ich versuche gerade eine Struktur von einem Dialog in einen anderen via Funktionsaufruf zu übergeben:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    
     
    //In MyDlg1.cpp
     
    #include "MyDlg3.h"
    static const int nMaxRows = 5;
     
    struct VarsDBAll
    {
        int nTypIconAll[nMaxRows];
        CString strEigenschaftAll[nMaxRows];
        CString strToleranzAll[nMaxRows];
        int nPMIconAll[nMaxRows];
        int nRMIconAll[nMaxRows];
        int nBMIconAll[nMaxRows];
    }varsDB;
     
    BOOL MyDlg1::OnInitDialog()
    {
        CDialog::OnInitDialog();
     
            ...
     
            MyDlg3* myDlg3 = (MyDlg3*)GetParent();
        myDlg3->SetList(lvItem, varsDB, nSelectedItem, nNextItem);
    }
     
    //In MyDlg3.cpp
     
    void MyDlg3::SetList(LVITEM lvItem, VarsDBAll varsDB, int nSelectedItem, int nNextItem)
    {
         ...
    }

    Ich bekomme vom VS2003 Compiler die Meldung:
    error C2027: Verwendung des undefinierten Typs "VarsDBAll"

    Kann mir jemand die richtige Syntax nennen um die struct richtig zu übergeben?
    Vielen Dank!
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Wenn du eine Struktur in 2 verschiedenen .cpp Dateien nutzen willst, dann mußt du die Deklaration dieser Struktur auch in beiden .cpp Dateien verfügbar machen.

    D.h. du mußt die Struktur in einer Header-Datei deklarieren, und diese dann in beide .cpp Dateien einbinden.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Lexx84 Lexx84 ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    12
    Danke für die Antwort, deepthroat!
    Durch deinen Ansatz hab ich es geschafft, die Variableninhalte der Struktur des ersten Dialogs als Pointer in den zweiten Dialog zu übergeben.

    Wenn es jemanden interessiert, das ganze sieht dann im zweiten Dialog so aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    //In MyDlg3.cpp
    #include "MyDlg1.h"
     
    void MyDlg3::SetList(LVITEM lvItem, struct VarsDBAll* varsDB, int nSelectedItem, int nNextItem)
    {
         ...
    }
     

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 26.02.10, 11:12
  2. Einen Buchstaben mit einem anderen Überschreiben
    Von PH234X im Forum .NET Windows Forms
    Antworten: 6
    Letzter Beitrag: 14.01.09, 20:54
  3. Antworten: 9
    Letzter Beitrag: 07.12.05, 17:29
  4. AddString in ListBox/ComboBox in einem anderen Dialog
    Von gehrti im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 18.04.05, 15:56
  5. Wie übergebe ich einen Filestream
    Von sisela im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 20.01.04, 17:32