Следующий код работает:«MessageBoxA»: не удается преобразовать параметр 2 из «станд :: вектор <_Ty>» к «» LPCSTR
void CMyPlugin8::myMessageBox(std::string& myString)
{
myString = "Received the following string\n" + myString;
char * writable = new char[myString.size() + 1];
std::copy(myString.begin(), myString.end(), writable);
writable[myString.size()] = '\0'; // don't forget the terminating 0 "delete[] writable;"
int msgboxID = MessageBox(
NULL,
writable,
"Notice",
MB_OK
);
delete[] writable;
}
Для очистки автоматически я информацию из: How to convert a std::string to const char* or char*?.
Следующий код выдает ошибку:
void CMyPlugin8::myMessageBox(std::string& myString)
{
myString = "Received the following string\n" + myString;
std::vector<char> writable(myString.begin(), myString.end());
writable.push_back('\0');
int msgboxID = MessageBox(
NULL,
writable,
"Notice",
MB_OK
);
}
Я получаю эту ошибку: 'MessageBoxA': не удается преобразовать параметр 2 из 'станд :: вектор < _Ty>' на '' LPCSTR
Почему вы скопировать в 'VECTOR'? (или вообще что-то копировать?) 'c_str' отлично подходит для этого случая. –
Вы имели в виду, вероятно, означало 'writable.data()'. –
Спасибо @ Франсуа, что работает. Не знаете, что вы имеете в виду при использовании c_str и как я это реализую. Я пробовал writeable.c_str(), и это дает другую ошибку 'c_str': не является членом 'std :: vector <_Ty>' –