Kein Zugriff auf public Struktur

Gast #541790
Lesenswert?

Ich habe folgendes Problem.
1
class CSVInterface    { 
2
public: 
3
    int DateiLesen(char* pszFilename); 
4
    int DateiSchreiben(char* pszFilename); 
5
    int VerzeichnisLesen(char* pszFilename); 
6

7

8
public:    
9
    struct IGBTStruktur {        // Beschreibung 
10
        string ch_Hersteller; 
11
        string ch_Typ; 
12
        string i_Nennspannung; 
13
        string i_Nennstrom; 
14
        string ch_Pack; 
15
        string ch_Kommentar; 
16
    } IGBTDaten; 
17

18

19

20
protected: 
21
    int n,i,j;    // Indexvariablen 
22

23
};
1
void main(void){ 
2
    cout << "Das ist meine CSV Schnittstelle Testoberfläche\n**********************************************"<<endl; 
3

4
    CSVInterface CSV; 
5
    
6
    CSV.DateiLesen("CSVEingabe.csv"); 
7

8

9
    cout << "\nHersteller:\t" << CSV.IGBTDaten.ch_Hersteller << endl; 
10
    cout << "Typ:\t" << CSV.IGBTDaten.ch_Typ << endl; 
11
    cout << "Nennspannung:\t" << CSV.IGBTDaten.i_Nennspannung << endl; 
12
    cout << "Nennstrom:\t" << CSV.IGBTDaten.i_Nennstrom << endl; 
13
    cout << "Gehäuse:\t" << CSV.IGBTDaten.ch_Pack << endl; 
14
    cout << "Kommentar:\t" << CSV.IGBTDaten.ch_Kommentar << endl; 
15

16
    string TestString; 
17
    TestString =  CSV.IGBTDaten.ch_Hersteller.c_str(); 
18

19
    cout << "\nTestString:\t" << TestString << endl; 
20

21
    getch(); 
22
}
Das hier funktioniert ...

Jetzt versuche ich diese Klasse in Simplorer C/C++ Interface nutzbar zu 
machen. Das ist ein Simulationsprogramm bei dem es möglich ist, 
Erweiterung über dieses Interface zu programmieren. Als Compiler dient 
dazu MS Visual C++ 6.0.
1
... 
2
    CSVInterface CSV; 
3
    CSV.DateiLesen("CSVEingabe.csv"); 
4
    
5
    string TestString; 
6
    TestString = CSV.IGBTDaten.ch_Hersteller.c_str();    
7
...
Beim erstellen kommen folgende Fehlermeldungen
1
Setting environment for using Microsoft Visual C++ tools. 
2
ExcelImport.cpp 
3
ExcelImport.cpp(17) : error C2039: 'IGBTDaten' : Ist kein Element von 'CSVInterface' 
4
        CSVSchnittstelle.h(12) : Siehe Deklaration von 'CSVInterface' 
5
ExcelImport.cpp(17) : error C2228: Der linke Teil von '.ch_Hersteller' muss eine Klasse/Struktur/Union sein 
6
ExcelImport.cpp(17) : error C2228: Der linke Teil von '.c_str' muss eine Klasse/Struktur/Union sein 
7
ExcelImport2_Interface.cpp 
8
        1 file(s) copied.
Ich kann mir nicht erklären, warum dass in der Visual C++ Oberfläche 
funktioniert, beim übertragen aber nicht mehr. ch_Hersteller ist Teil 
der Klasse, da habe ich nichts verändert. Die Klasse wird vorher 
eingebunden, sonst würde es bereits bei der Objekterstellung zum Fehler 
kommen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren