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.