C ++ / CLI нужна помощь в MessageBox :: Show - PullRequest
2 голосов
/ 24 апреля 2011

Я строю проект на C ++ / CLI, где мне нужно показать окно сообщения в одной из моих форм.

Содержимое должно быть комбинацией std :: string и int.

Но я не могу получить правильный синтаксис.

Я попробовал следующее:

std::string stringPart = "ABC";
int intPart = 10;
MessageBox::Show("Message" + stringPart + intPart);

Я также попытался:

String^ msg = String::Concat("Message", stringPart);
msg = String::Concat(msg, intPart);
MessageBox::Show(msg);

Может кто-тоПожалуйста, помогите мне с синтаксисом.

Спасибо.

1 Ответ

9 голосов
/ 24 апреля 2011

Ваша проблема в том, что std::string неуправляемый и не может быть назначен управляемому System::String.Решение это сортировка.См. Эту страницу MSDN: http://msdn.microsoft.com/en-us/library/bb384865.aspx

Итак, вот решение (для Visual Studio):

#include <msclr/marshal_cppstd.h>

// ...

std::string stringPart = "ABC";
int intPart = 10;

String^ msg = String::Concat("Message", msclr::interop::marshal_as<System::String^>(stringPart));
msg = String::Concat(msg, intPart);
MessageBox::Show(msg);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...