Я адаптирую пример Управления формами здесь и нашел AppLog, чтобы странным образом манипулировать моими сообщениями.
void
MyFormsApp::OnUserEventReceivedN (RequestId requestId, IList *pArgs)
{
AppLog("OnUEveRxdNb, beginning");
if(!pArgs) {
AppLog("OnUserEventReceivedN, null List");
return;
}
if(requestId==TabsForm::TABS_SWITCH_CALL)
{
Integer * tabindex = static_cast<Integer *>(pArgs->GetAt(0));
MyLog(L"OnUEveRxdN, formID : ", formID->ToInt());
//MyLog(L"OnUserEventReceivedN, formID : ", formID->ToInt());
if(tabindex)
{
switch(tabindex->ToInt())
{
case TabsForm::SEARCH_TAB:
frame_->SetCurrentForm(*search_form_);
search_form_->RequestRedraw(true);
break;
case TabsForm::RESULTS_TAB:
frame_->SetCurrentForm(*results_form_);
results_form_->RequestRedraw(true);
break;
case TabsForm::CONTENTS_TAB:
frame_->SetCurrentForm(*contents_form_);
contents_form_->RequestRedraw(true);
break;
}
}
}
pArgs->RemoveAll(true);
delete pArgs;
} //closebracket
MyLog равен
void MyLog(const String &badaStr) {
char *natStr = new char[badaStr.GetLength()];
for (int i = 0; i < badaStr.GetLength(); ++i)
natStr[i] = badaStr[i];
AppLog(natStr);
delete[] natStr;
}
void MyLog(const mchar *pValue, const int int_param) {
String str(pValue);
result r = str.Append(int_param);
MyLog(str);
}
void MyLog(const char *pValue, const int int_param) {
String str(pValue);
result r = str.Append(int_param);
MyLog(str);
}
ЕслиВы видите, где я получил два вызова, второй комментарий был закомментирован, потому что он добавляет мусор в конец моей строки.Я вызываю эти функции из разных мест моего приложения без проблем, но здесь строка должна быть обрезана.Это не общее число char
для каждой функции, потому что замена первого AppLog
на AppLog("BadaReader::OnUserEventReceivedN, beginning");
не имеет значения.
Может кто-нибудь заметить мою ошибку или Bada 2.0.2 известен для такого рода случайного сбоя