Еще одно отличие между BCC32 и BCC32C. Функция Format не отображается правильно для BCC32C. В следующем примере BCC32 показывает «7 тестовый тест 7» (правильный), но BCC32C показывает «7 тестовых тестов». Я использую Rad Studio 10.1. Вы можете повторить его создание пустого проекта, добавить кнопку, а затем следующий код:Функция форматирования не работает для BCC32C
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int i=7;
String str="test";
ShowMessage(Format("%d %s %s %d", ARRAYOFCONST((i, str, str, i))));
}
Есть ли обходной путь для этого? Я начинаю думать, что BCC32C не готов к производству. Я нахожу много проблем.
'Format()' это хорошо, но 'ARRAYOFCONST' кажется замарать . См. Ответ от @Sam. Его решение работает. «ARRAYOFCONST» должен создать тот же набор из двух аргументов. И действительно, ** еще одна проблема с BCC32C **. Это отлично работает в 64-битном (также Clang) компиляторе. –
Является ли также макросом 'OPENARRAY()'? Я предполагаю, что это будет так, потому что он объявлен аналогично «ARRAYOFCONST()», просто он использует определяемое пользователем имя типа вместо 'TVarRec'. –