eC++ : std::string in MessageBox ausgeben !?!

Hallo,

zunächst mein Code:


#include
using namespace std;

std::string st;
st.assign(„Testausgabe!“);

wchar_t msg_buff[256];
wsprintf(msg_buff,L"Teststring: %s",st);

MessageBox(msg_buff,L"Test");


Leider wird der String „Testausgabe!“ nicht ausgegeben! :frowning:
Wo liegt das Problem? Kann mir jemand helfen?
Danke i.V.

Gruß,
Beanpole

Hallo,

std::string st;
st.assign(„Testausgabe!“);

st = „Testausgabe!“; // assign ist overkill hier :wink:

wchar_t msg_buff[256];
wsprintf(msg_buff,L"Teststring: %s",st);

wsprintf(msg_buff,L"Teststring: %s",st.c_str());
(http://www.cppreference.com/cppstring/c_str.html)

Versuch mal. Was war nochmal das „L“? Ist
das ein Makro, das nach wchar_t umwandelt?

Grüße

CMБ

Ne, so hats nicht geklappt.
Hab aber jetzt ne Lösung gefunden:

st.assign(L"Testausgabe!");
wchar_t msg_buff[256];
wsprintf(msg_buff,st.c_str(),0);
MessageBox(msg_buff,L"Test");

Die 0 bei wsprintf hab ich nur hingeknallt,
weil noch irgendein Parameter gefehlt hatte.

Was war nochmal das „L“? Ist
das ein Makro, das nach wchar_t umwandelt?

L bedeutet unsigned short* bzw. wstring!

Gruss,
Beanpole