Forum: PC-Programmierung Kein Zugriff auf public Struktur


von Diplomand (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.