2014-11-28 2 views
0

Я надеюсь, что это будет довольно простая проблема, возможно, из-за того, что я не понимаю многих приложений C++ Win32 API.Устранение неполадок с помощью функции sprintf()

В любом случае, у меня возникли проблемы с функцией sprintf(). У меня не было никаких проблем, используя его в строку, как это:

//memory is a void pointer that maps a file to shared memory 
sprintf((char *)memory, "Shared memory message"); //Write to shared memory 

Но когда я пытаюсь использовать переменную string он не работает ....

sprintf((char *)memory, str_var); //Write to shared memory 

Я получаю сообщение об ошибке: : no suitable conversion function from "std::string" to "const char *" exists. Я даже не могу исправить это путем литья типа, как я сделал с memory.

Это кажется довольно непоследовательным. Что я делаю неправильно, и как я могу придать ему значение, которое он примет?

+1

станд :: строка не может быть преобразована в сопзЬ символ *, используйте метод члена .c_str(), чтобы преобразовать его –

+0

попытаться узнать разницу между строкой и строкой с стиле. [http://stackoverflow.com/questions/10958437/how-to-convert-an-stdstring-to-c-style-string][1] [1]: http://stackoverflow.com/questions/10958437/how-to-convert-an-stdstring-to-c-style-string – BufBills

ответ

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