Moin....
In Class A habe ich ein Struct. Den Zeiger auf dieses Struct möchte ich Class B zur Verfügung stellen, damitt Class B in der Lage ist die Daten auf die der Zeiger zeigt zu verändern.
Geht das Überhaupt?
Was habe ich bisher gemacht:
Ich habe in einem eigenen Header "Data.h" ein Struckt definiert:
typedef struct CFG{
char webUser[40];
char webPassword[40];
char apName[40];
char apPassword[40];
char wifiSSID[40];
char wifiPSK[40];
char wifiIP[20];
char mqttServer[20];
char mqttPort[6];
char mqttDeviceName[20];
};
Dieses Struct nutze ich in Class A:
A.h
private:
CFG cfg;
um den Zeiger von cfg an die ClassB zu übergeben:
A.cpp
B.Set_cfgPointer(&cfg);
B.h
public
CFG *cfg;
void Set_cfgPointer(CFG *p);
und anzulegen und zuzuweisen:
B.cpp
B::B(){
CFG *cfg = new CFG();
}
void ESP8266_Basic_webServer::Set_cfgPointer(CFG *p){
Serial.print("setConfigPointer");
cfg = p;
}
Das läuft zumindest durch.....
Wie komme ich denn jetzt an die Felder von *cfg ran?
Folgendes habe ich probiert:
strcpy(*cfg->webUser, "Hello World!!!!!");
strcpy(*cfg.webUser, "Hello World!!!!!");
*cfg->webUser = "Hello World!!!!!";
*cfg.webUser = "Hello World!!!!!";
leider ohne Erfolg...... meine Grenze ist schon wieder erreicht.... :![]()
C:\Users\Pfanne\Documents\Arduino\libraries\ESP8266_Basic\ESP8266_Basic_webServer.cpp: In member function 'void ESP8266_Basic_webServer::start()':
C:\Users\Pfanne\Documents\Arduino\libraries\ESP8266_Basic\ESP8266_Basic_webServer.cpp:28:43: error: invalid conversion from 'char' to 'char*' [-fpermissive]
strcpy(*cfg->webUser, "Hello World!!!!!");
^
In file included from c:\users\pfanne\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\stdlib.h:11:0,
from C:\Users\Pfanne\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.1.0-rc2\cores\esp8266/Arduino.h:27,
from C:\Users\Pfanne\Documents\Arduino\libraries\ESP8266_Basic/ESP8266_Basic_webServer.h:1,
from C:\Users\Pfanne\Documents\Arduino\libraries\ESP8266_Basic\ESP8266_Basic_webServer.cpp:1:
c:\users\pfanne\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\xtensa-lx106-elf\include\string.h:30:8: error: initializing argument 1 of 'char* strcpy(char*, const char*)' [-fpermissive]
char *_EXFUN(strcpy,(char *, const char *));
^
C:\Users\Pfanne\Documents\Arduino\libraries\ESP8266_Basic\ESP8266_Basic_webServer.cpp:29:15: error: request for member 'webUser' in '((ESP8266_Basic_webServer*)this)->ESP8266_Basic_webServer::cfg', which is of pointer type 'CFG*' (maybe you meant to use '->' ?)
strcpy(*cfg.webUser, "Hello World!!!!!");
^
C:\Users\Pfanne\Documents\Arduino\libraries\ESP8266_Basic\ESP8266_Basic_webServer.cpp:30:17: error: invalid conversion from 'const char*' to 'char' [-fpermissive]
*cfg->webUser = "Hello World!!!!!";
^
C:\Users\Pfanne\Documents\Arduino\libraries\ESP8266_Basic\ESP8266_Basic_webServer.cpp:31:8: error: request for member 'webUser' in '((ESP8266_Basic_webServer*)this)->ESP8266_Basic_webServer::cfg', which is of pointer type 'CFG*' (maybe you meant to use '->' ?)
*cfg.webUser = "Hello World!!!!!";
^
exit status 1
Fehler beim Kompilieren.