Struktur von einem Dialog in einen anderen übergebe

Lexx84

Grünschnabel
Hallo,
ich versuche gerade eine Struktur von einem Dialog in einen anderen via Funktionsaufruf zu übergeben:

Code:
//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!
 
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ß
 
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:
//In MyDlg3.cpp
#include "MyDlg1.h"
 
void MyDlg3::SetList(LVITEM lvItem, struct VarsDBAll* varsDB, int nSelectedItem, int nNextItem)
{
     ...
}
 
Zurück