Konvertierungsproblem
Verfasst: 4. März 2011 16:01
Hallo Qt-Community,
ich bin noch Recht neu in Qt4 und habe ein kleines Problem mit der Konvertierung von QString zu const char*.
Wenn ich mir die Variable ausgeben lasse mit qDebug("%s", filter_exp) sehe ich den korrekten String, jedoch bekomme ich bei der Übergabe als Parameter an eine C third-party library (libpcap) Funktion den Fehler "@eD: illegal token: @". Wenn ich den relevanten Code wie folgt ändere funktioniert es problemlos:
Ich verstehe irgendwie nicht warum sich das ganze so verhält. Kann mich darüber jemand aufklären?
ich bin noch Recht neu in Qt4 und habe ein kleines Problem mit der Konvertierung von QString zu const char*.
Code: Alles auswählen
Config* cfg = Config::getInstance();
QString ip = cfg->getHostIP();
QString network = cfg->getNetwork();
QString filter = QString(
"(src host %1 and not dst net %2) or "
"(dst host %1 and not src net %2) or "
"port 53").arg(ip, network);
const char* filter_exp = filter.toAscii().constData();
Code: Alles auswählen
QByteArray filter = QString(
"(src host %1 and not dst net %2) or "
"(dst host %1 and not src net %2) or "
"port 53"
).arg(ip, network).toAscii();
const char* filter_exp = filter.constData();