Добавить элементы в listBox (API)

Я просто хочу добавить элемент wostringstream (tmp) в мой список в C ++. Вот как я пытался:

 for(int i=0; i<6; i++){
tmp<<hex<<m_device_info.Adress.rgBytes[i];
if (i<5)
tmp<<L":";
}
listBox2->Items->Add(tmp.str());

Ошибка, которую я получаю:

«ошибка C2664: ‘Система :: Windows :: Forms :: ListBox :: ObjectCollection :: Add’
конвертировать ‘wchar_t’ в ‘system :: object ^’ невозможно «

У кого-нибудь есть подсказка?

0

Решение

listBox2-> Items-> Add (System :: Runtime :: InteropServices ::
Marshal :: PtrToStringUni (IntPtr (tmp.str (). C_str ())));

Лучше использовать управляемый класс System :: String в приложении .NET, чем неуправляемую строку и поток. Не смешивайте управляемые и неуправляемые типы, если это не является абсолютно необходимым.

Это код из моего тестового проекта:

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
std::wostringstream s;
s << L"test";

listBox1->Items->Add( System::Runtime::InteropServices::
Marshal::PtrToStringUni( IntPtr( (void*)s.str().c_str() ) ) );

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]