Ошибка Delphi возникла внезапно на одной машине: E2056 Строковые литералы могут содержать не более 255 элементов, как это возможно? - PullRequest
0 голосов
/ 13 октября 2010

Я смог создать одно приложение до сегодняшнего утра, тогда я не знаю, что случилось, когда я пытаюсь собрать, у меня есть

[DCC Error] myunit.pas(1710): E2056 String literals may have at most 255 element`

Почему, если это работало?(1710) не редактировался в прошлом месяце.Я проверил с коллегой варианты проекта и варианты окружающей среды один за другим, и они одинаковы.(единственное отличие состоит в том, что я установил все обновления Delphi, хотя он так и не сделал, я не установил их сегодня).

более того, если я исправлю вышеприведенную «ошибку», разделив строку на 2, выполнивчто-то вроде

S := 'firstpart' + 'secondpart';

вместо

S := 'firstpartsecondpart';
// this is an example of course firstpartsecondpart 
//is a string of more than 255 chars

У меня есть другая проблема:

[DCC Error] myunit.pas(1797): E2283 Too many local constants.  Use shorter procedures

Почему это?Я не изменил эту процедуру сегодня.Это действительно долгая процедура, но она собиралась до сегодняшнего утра.Я попытался разделить процедуру на 2, и я смог скомпилировать ...

И наконец ...

Точки останова больше не работают.Если я попытаюсь установить точку останова, после компиляции и компоновки КРАСНЫЙ сигнал c brecepoint становится зеленым с помощью X, как при попытке отладки строки кода, которую невозможно отладить.

Я перепробовал все, включая перезагрузкуи для параметра «Отладочная информация» задано значение «Истина» в параметрах проекта.

ЗАКЛЮЧИТЕЛЬНОЕ ПРИМЕЧАНИЕ : По некоторым причинам некоторые странные настройки были применены.Я не могу вспомнить, что сделал что-то странное.Недавно я установил CnPack, но я мог эффективно использовать его в течение нескольких дней.Эта проблема началась сегодня.

Кто-нибудь может мне помочь?У меня серьезные проблемы, я потерял полдня и до сих пор не вижу выхода.

1 Ответ

4 голосов
/ 13 октября 2010

Кажется, вы изменили опцию проекта "Огромные строки". Вы добавили {$ H} в свой код? Или вы возились с вариантами проекта? («Параметры компилятора / Огромные строки» необходимо установить по умолчанию для строк длиной более 255 символов.)
Зеленая точка останова означает, что этот конкретный код не скомпилирован, поэтому он не будет вызываться. Проверьте, вызывает ли ваш код этот код или, возможно, он смотрит на какой-то другой (предварительно скомпилированный?) Модуль.


Мои комментарии снизу для завершения ответа:

Если все точки останова имеют зеленый цвет, значит, у вас возникла проблема с настройкой параметров проекта. Если вы удалите файлы YourProject.dproj и YourProject.dproj.local (переместите в другое место, не удаляйте), а затем откроете YourProject.dpr, ваш проект должен иметь параметры по умолчанию. Проверьте, работает ли это в этом случае. Если нет, переместите старые файлы обратно.
Ошибка E2056 заключается в том, что строки внутри кода Delphi не могут быть длиннее 255 символов. Разделив его, добавив «+» в строку, можно это исправить. Посмотрите qc.embarcadero.com/wc/qcmain.aspx?d=71575, чтобы узнать, почему ваш коллега не получил это предупреждение.
...