Я надеюсь, что это будет довольно простая проблема, возможно, из-за того, что я не понимаю многих приложений 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
.
Это кажется довольно непоследовательным. Что я делаю неправильно, и как я могу придать ему значение, которое он примет?
станд :: строка не может быть преобразована в сопзЬ символ *, используйте метод члена .c_str(), чтобы преобразовать его –
попытаться узнать разницу между строкой и строкой с стиле. [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