konvertieren Sie vector<string> in char** C++

Ich habe eine vector<std::string> variable. Ich übergeben zu müssen, es auf eine Methode, die akzeptiert char**als input-parameter.

wie dies zu tun ? Wenn möglich und ich übergeben zu müssen, einen beschreibbaren.

Update 1:
Ein Werkzeug für die Erstellung einer service-Methode, gebe ich Parameter wie std::vector, aber es setzt automatisch die qualifier als &, was bedeutet, dass meine Methode definition die von dem tool generiert wird Aussehen wie:

std::string SvcImpl::myMethodname ( const std::string par1, const std::vector<     std::string >& par2, const std::vector< std::string >& par3 )
{

}

Diese Methode wird automatisch aufgerufen, mit den Werten in der patameter übergeben.
Jetzt von innen diese Methode werde ich rufen Sie eine Methode in einer dll in einen lib-Ordner, die wie folgt aussieht:

int method_to_be_called(char* par1, char ** par2, char ** par3, void* pRetValue);

für par1 --> ich bin vorbei (char*)par1.c_str()

Muss ich wissen, wie die übergabe von Variablen für par2 und par3 und für pRetValue.
Werte für par2 und par3 sind erhältlich in den vector, aber der Letzte parameter pRetValue ist ein output-parameter, das muss ich zurückgeben, da std::string.

sorry, wenn ich sehr verwirrend oder zu Fragen, ganz einfache Fragen.

dann wird Ihr Betrieb sollte auf *writable, vorausgesetzt, **beschreibbar ist, akzeptieren Sie Ihren char ** param.
Ich denke, Sie gehen zu müssen, um eine neue zu produzieren std::vector<char*> zum speichern der Adressen aller Ihrer string-Daten.
Was genau bedeutet dieser Methode übergeben Sie es zu tun?
Tun Sie wirklich brauchen, um zu kopieren Sie den Inhalt des strings in eine newed array, oder können Sie nur verwenden, einen Zeiger auf die zugrunde liegenden Daten direkt?
Die "zugrunde liegenden Daten" wäre ein array von string-Objekten, Sie können nicht einfach Durchlaufen, als wären Sie ein array von c-strings.

InformationsquelleAutor Mohamed Iqzas | 2014-09-25

Schreibe einen Kommentar