2013-05-16 5 views
0

, как я могу это сделать:Преобразование QString в StD :: строка *


_name__GetAvailable inp; 

QString tmp; 
inp.From = tmp; 

это определение имени _GetAvailable класса:

class SOAP_CMAC _name__GetAvailable 
{ 
public: 
    std::string *From; 
    std::string *To;  
    struct soap *soap; 
} 

Я попытался это :

inp.From = tmp.toStdString(); 

, но я получил следующее сообщение об ошибке:

C:\Qt2\Qt5.0.1\Tools\QtCreator\bin\Ticket\mainwindow.cpp:49: error: cannot convert 'std::string {aka std::basic_string}' to 'std::string* {aka std::basic_string*}' in assignment

+2

@sashoalm как это дубликат? Если вы прочитаете вопрос, вы увидите, что он уже * конвертировал из 'QString' в' std :: string'. Его проблема заключается в получении указателя * в 'std :: string' – jalf

+0

@sashoalm OP хочет' std :: string * 'не просто' std :: string'. – zakinster

+1

Если у вас есть std :: string, вы должны иметь возможность отобразить указатель, или вы должны вернуться к изучению C++. – sashoalm

ответ

3

Если вы хотите std::string указатель, необходимо выделить новый std::string:

inp.From = new std::string(tmp.toStdString()); 

Но я действительно не вижу причина, по которой вам нужно будет манипулировать указателем std::string.

Если OAP_CMAC _name__GetAvailable ваше, вы могли бы манипулировать std::string значением:

class SOAP_CMAC _name__GetAvailable 
{ 
public: 
    std::string From; 
    std::string To;  
    struct soap *soap; 
} 

В противном случае не забудьте deletestd::string*From и To в какой-то момент.

+0

Спасибо, что это сработало Я использовал gSOAP toolkit для создания некоторых заголовков и исходных файлов , и теперь я использую его класс и функции, и я не могу изменить их определения – danitiger33

Смежные вопросы