使用RAD Studio命令提示符构建项目时,出现以下错误: 错误E2064:左侧无法分配到
我知道这与Assignable Typed Constants问题有关,我知道在Embaracadero编译器中将它转到哪里,但是我需要在编译器之外设置这个设置。
我的配置文件目前看起来像这样:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<DCC_HppOutput>c:\d64\DCUfiles</DCC_HppOutput>
<DCC_ObjOutput>c:\d64\DCUfiles</DCC_ObjOutput>
<DCC_UnitSearchPath>c:\d64\sf\cis;C:\d64\Dcu64;C:\d64\ProkonRibbon;$(DCC_UnitSearchPath)</DCC_UnitSearchPath>
<Icon_MainIcon>Frame_Icon.ico</Icon_MainIcon>
<DCC_LocalDebugSymbols>true</DCC_LocalDebugSymbols>
<VerInfo_Release>67</VerInfo_Release>
<DCC_ImportedDataReferences>false</DCC_ImportedDataReferences>
<DCC_StrictVarStrings>false</DCC_StrictVarStrings>
<DCC_Define>_VER7;_VER7;_VER7;_VER7;$(DCC_Define)</DCC_Define>
<DCC_DcuOutput>c:\d64\Dcu64</DCC_DcuOutput>
<DCC_ExeOutput>c:\prokon\bin64</DCC_ExeOutput>
<VerInfo_Keys>CompanyName=;
FileDescription=;
FileVersion=2.6.67.0;
InternalName=;
LegalCopyright=;
LegalTrademarks=;
OriginalFilename=;
ProductName=;
ProductVersion=2.6.67.0;
Comments=23 Jul 2015
</VerInfo_Keys>
<VerInfo_Locale>1033</VerInfo_Locale>
<VerInfo_MinorVer>6</VerInfo_MinorVer>
</PropertyGroup>
<ProjectExtensions>
<Borland.Personality>Delphi.Personality.12</Borland.Personality>
<Borland.ProjectType>OptionSet</Borland.ProjectType>
<BorlandProject>
<Delphi.Personality/>
</BorlandProject>
<ProjectFileVersion>12</ProjectFileVersion>
</ProjectExtensions>
有没有办法在此文件中设置Assignable Typed Constants属性?
答案 0 :(得分:4)
在<PropertyGroup>
标记内添加
<DCC_WriteableConstants>true</DCC_WriteableConstants>
您还可以使用{$J+}
或{$WRITEABLECONST ON}
编译器开关在源代码中包含该设置。这将是最可取的选择,因为没有它就无法编译代码。
在代码中使用编译器指令的另一个好处是,您可以有选择地应用可写入类型的常量,而不是使所有类型的常量都可写。
const
{$WRITEABLECONST ON}
x: integer = 1;
{$WRITEABLECONST OFF}
y: integer = 2;
begin
writeln(x); // -> 1
x := 3;
writeln(x); // -> 3
y := 4; // does not compile
end.