Delphi错误突然出现在一台机器上:E2056字符串文字可能最多有255个元素,它怎么可能?

时间:2010-10-13 09:04:16

标签: delphi debugging delphi-2009

我能够在今天早上构建一个应用程序,然后我不知道在我尝试构建时发生了什么

[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并且我能够编译...

最后......

断点不再起作用。如果我尝试设置一个断点,在编译和链接之后,breaxpoint的RED cirlce会变成带绿色的绿色,就像你试图调试一行无法调试的代码一样。

我尝试了所有方法,包括重新启动并在项目选项中将Debug Info设置为True。

最终注释:似乎由于某种原因,已经应用了一些奇怪的设置。我记不起做了什么奇怪的事。最近我安装了CnPack,但我可以有效地使用它好几天了。这个问题从今天开始。

任何人都可以帮我一把吗?我遇到了麻烦,我失去了半天,但我仍然没有找到出路。

1 个答案:

答案 0 :(得分:4)

看来你已经改变了“巨大的字符串”项目选项。您是否在代码中添加了{$ H}?或者您是否摆弄了项目选项? (需要检查“编译器选项/大字符串”默认为长度超过255个字符的字符串。)
绿色断点事件意味着不会编译此特定代码,因此不会调用它。检查您的代码是否正在调用此代码,或者它是否正在查看其他(预编译的?)单元。


我的评论来自下面以完成答案:

如果所有断点均为绿色,则表示您在设置项目选项时出现问题。如果删除YourProject.dproj和YourProject.dproj.local文件(在其他地方移动,请勿删除),然后打开YourProject.dpr,您的项目应具有默认选项。在这种情况下检查它是否有效。如果没有,请将旧文件移回。
E2056错误是因为Delphi代码中的字符串不能超过255个字符。通过在字符串中包含'+'来拆分它可以解决这个问题。请参阅qc.embarcadero.com/wc/qcmain.aspx?d=71575,了解您的同事未收到此警告的原因。