0

次のコードが機能します。

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;
}

自動的にクリーンアップするために、次の情報を使用しました: std::string を const char* または 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 を 'std::vector<_Ty>' から 'LPCSTR' に変換できません

4

3 に答える 3