Ecco la soluzione:
strcpy(b, (const char*)a.c_str());
E' molto strano. Ho scritto un programma in C++ con WxDev-C++ compilato con MinGw. Sotto Windows il codice:
wxString a;
char b[256];
strcpy(b, a);
viene compilato tranquillamente mentre sotto Linux è necessario scrivere:
wxString a;
char b[256];
strcpy(b, (const char*)a.c_str());
Come mai?