1

整数と組み合わせたテキストで構成されているメッセージを表示するのに問題があります

これが私のコードです:

int integerNumberOfImportantAppointments = calCalendar.getNumberOfImportantAppointments();

if (integerNumberOfImportantAppointments > 0)
{
    ShowMessage("You have " + integerNumberOfImportantAppointments + " important appointments. Do you wish to view them?");
}

次のエラーが発生します:E2085無効なポインタの追加

これを機能させるために助けてもらえますか?

ありがとう

4

3 に答える 3

2

sprintfまたはitoa(または同様のもの)を使用する代わりに、おそらく次の方が良いでしょうstd::istringstream

int iNumberOfImportantAppointments = calCalendar.getNumberOfImportantAppointments();

if (iNumberOfImportantAppointments > 0)
{
    std::istringstream istr;
    istr << "You have " << iNumberOfImportantAppointments << " important appointments. Do you wish to view them?";
    ShowMessage(istr.str().c_str());
}

PS。わかりやすい変数/関数名は適切ですが、長すぎる名前もあります。:)

于 2012-09-24T05:46:32.243 に答える
0

これを試して:

int integerNumberOfImportantAppointments = calCalendar.getNumberOfImportantAppointments();
if (integerNumberOfImportantAppointments > 0)
{
   // itoa is not standard (like any of this is)
   WCHAR strN[32];
   swprintf(strN, L"%d", integerNumberOfImportantAppointments);

   // not familiar with ShowMessage(), but I *think* this will work.
   ShowMessage("You have " + UnicodeString(strN) + " important appointments. Do you wish to view them?");
}
于 2012-09-24T04:40:58.297 に答える
0

これについてのwht:

int integerNumberOfImportantAppointments = calCalendar.getNumberOfImportantAppointments();
char buffer[30];
if (integerNumberOfImportantAppointments > 0)
{
itoa (integerNumberOfImportantAppointments,buffer,10);
    ShowMessage("You have " + buffer + " important appointments. Do you wish to view them?");
}
于 2012-09-24T04:21:30.740 に答える