Browse Source

Enable typed @ operator in Setup.

Martijn Laan 1 week ago
parent
commit
0674a85e13

+ 2 - 2
Components/RichEditViewer.pas

@@ -444,7 +444,7 @@ function TRichEditViewer.SetRTFText(const Value: AnsiString): Integer;
     Data: TStreamLoadData;
     Data: TStreamLoadData;
     EditStream: TEditStream;
     EditStream: TEditStream;
   begin
   begin
-    Data.Buf := @Value[1];
+    Data.Buf := PByte(@Value[1]);
     Data.BytesLeft := Length(Value);
     Data.BytesLeft := Length(Value);
     { Check for UTF-16 BOM }
     { Check for UTF-16 BOM }
     if (AFormat and SF_TEXT <> 0) and (Data.BytesLeft >= 2) and
     if (AFormat and SF_TEXT <> 0) and (Data.BytesLeft >= 2) and
@@ -455,7 +455,7 @@ function TRichEditViewer.SetRTFText(const Value: AnsiString): Integer;
     end;
     end;
     EditStream.dwCookie := DWORD_PTR(@Data);
     EditStream.dwCookie := DWORD_PTR(@Data);
     EditStream.dwError := 0;
     EditStream.dwError := 0;
-    EditStream.pfnCallback := @StreamLoad;
+    EditStream.pfnCallback := TEditStreamCallBack(@StreamLoad);
     SendMessage(Handle, EM_STREAMIN, AFormat, LPARAM(@EditStream));
     SendMessage(Handle, EM_STREAMIN, AFormat, LPARAM(@EditStream));
     Result := EditStream.dwError;
     Result := EditStream.dwError;
   end;
   end;

+ 1 - 0
Projects/Setup.dproj

@@ -45,6 +45,7 @@
         <DCC_EXPLICIT_STRING_CAST_LOSS>false</DCC_EXPLICIT_STRING_CAST_LOSS>
         <DCC_EXPLICIT_STRING_CAST_LOSS>false</DCC_EXPLICIT_STRING_CAST_LOSS>
         <DCC_IMPLICIT_INTEGER_CAST_LOSS>false</DCC_IMPLICIT_INTEGER_CAST_LOSS>
         <DCC_IMPLICIT_INTEGER_CAST_LOSS>false</DCC_IMPLICIT_INTEGER_CAST_LOSS>
         <DCC_IMPLICIT_CONVERSION_LOSS>false</DCC_IMPLICIT_CONVERSION_LOSS>
         <DCC_IMPLICIT_CONVERSION_LOSS>false</DCC_IMPLICIT_CONVERSION_LOSS>
+        <DCC_TypedAtParameter>true</DCC_TypedAtParameter>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Base_Win32)'!=''">
     <PropertyGroup Condition="'$(Base_Win32)'!=''">
         <BT_BuildType>Debug</BT_BuildType>
         <BT_BuildType>Debug</BT_BuildType>

+ 1 - 0
Projects/SetupCustomStyle.dproj

@@ -45,6 +45,7 @@
         <DCC_EXPLICIT_STRING_CAST_LOSS>false</DCC_EXPLICIT_STRING_CAST_LOSS>
         <DCC_EXPLICIT_STRING_CAST_LOSS>false</DCC_EXPLICIT_STRING_CAST_LOSS>
         <DCC_IMPLICIT_INTEGER_CAST_LOSS>false</DCC_IMPLICIT_INTEGER_CAST_LOSS>
         <DCC_IMPLICIT_INTEGER_CAST_LOSS>false</DCC_IMPLICIT_INTEGER_CAST_LOSS>
         <DCC_IMPLICIT_CONVERSION_LOSS>false</DCC_IMPLICIT_CONVERSION_LOSS>
         <DCC_IMPLICIT_CONVERSION_LOSS>false</DCC_IMPLICIT_CONVERSION_LOSS>
+        <DCC_TypedAtParameter>true</DCC_TypedAtParameter>
         <Custom_Styles>&quot;Slate Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\SlateClassico.vsf&quot;;&quot;Windows11 Modern Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows11_Modern_Dark.vsf&quot;;&quot;Windows11 Modern Light|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows11_Modern_Light.vsf&quot;;&quot;Windows11 Polar Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows11_Polar_Dark.vsf&quot;;&quot;Windows11 Polar Light|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows11_Polar_Light.vsf&quot;;Zircon|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Zircon.vsf</Custom_Styles>
         <Custom_Styles>&quot;Slate Classico|VCLSTYLE|$(BDSCOMMONDIR)\Styles\SlateClassico.vsf&quot;;&quot;Windows11 Modern Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows11_Modern_Dark.vsf&quot;;&quot;Windows11 Modern Light|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows11_Modern_Light.vsf&quot;;&quot;Windows11 Polar Dark|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows11_Polar_Dark.vsf&quot;;&quot;Windows11 Polar Light|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Windows11_Polar_Light.vsf&quot;;Zircon|VCLSTYLE|$(BDSCOMMONDIR)\Styles\Zircon.vsf</Custom_Styles>
     </PropertyGroup>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Base_Win32)'!=''">
     <PropertyGroup Condition="'$(Base_Win32)'!=''">

+ 4 - 4
Projects/Src/Compression.LZMADecompressor.pas

@@ -20,7 +20,7 @@ type
   private
   private
     FReachedEnd: Boolean;
     FReachedEnd: Boolean;
     FHeaderProcessed: Boolean;
     FHeaderProcessed: Boolean;
-    FNextIn: ^Byte;
+    FNextIn: PByte;
     FAvailIn: Cardinal;
     FAvailIn: Cardinal;
     FBuffer: array[0..65535] of Byte;
     FBuffer: array[0..65535] of Byte;
   protected
   protected
@@ -161,7 +161,7 @@ end;
 
 
 procedure TLZMACustomDecompressor.DecompressInto(var Buffer; Count: Cardinal);
 procedure TLZMACustomDecompressor.DecompressInto(var Buffer; Count: Cardinal);
 var
 var
-  NextOut: ^Byte;
+  NextOut: PByte;
   AvailOut: Longint;
   AvailOut: Longint;
   OutBytes, InBytes: Cardinal;
   OutBytes, InBytes: Cardinal;
   Code: TLZMASRes;
   Code: TLZMASRes;
@@ -169,7 +169,7 @@ var
 begin
 begin
   if not FHeaderProcessed then begin
   if not FHeaderProcessed then begin
     { Reset these following a reset }
     { Reset these following a reset }
-    FNextIn := @FBuffer;
+    FNextIn := PByte(@FBuffer);
     FAvailIn := 0;
     FAvailIn := 0;
     ProcessHeader;
     ProcessHeader;
     FHeaderProcessed := True;
     FHeaderProcessed := True;
@@ -178,7 +178,7 @@ begin
   AvailOut := Count;
   AvailOut := Count;
   while AvailOut > 0 do begin
   while AvailOut > 0 do begin
     if (FAvailIn = 0) and not FReachedEnd then begin
     if (FAvailIn = 0) and not FReachedEnd then begin
-      FNextIn := @FBuffer;
+      FNextIn := PByte(@FBuffer);
       FAvailIn := ReadProc(FBuffer, SizeOf(FBuffer));
       FAvailIn := ReadProc(FBuffer, SizeOf(FBuffer));
       if FAvailIn = 0 then
       if FAvailIn = 0 then
         FReachedEnd := True;  { not really necessary, but for consistency }
         FReachedEnd := True;  { not really necessary, but for consistency }

+ 1 - 1
Projects/Src/Setup.DotNetFunc.pas

@@ -213,7 +213,7 @@ function IsDotNetInstalled(const RegView: TRegView; const MinVersion: TDotNetVer
   begin
   begin
     if RegOpenKeyExView(RegView, HKEY_LOCAL_MACHINE, PChar(SubKey), 0, KEY_QUERY_VALUE, K) = ERROR_SUCCESS then begin
     if RegOpenKeyExView(RegView, HKEY_LOCAL_MACHINE, PChar(SubKey), 0, KEY_QUERY_VALUE, K) = ERROR_SUCCESS then begin
       Size := SizeOf(Value);
       Size := SizeOf(Value);
-      Result := (RegQueryValueEx(K, PChar(ValueName), nil, @Typ, @Value, @Size) = ERROR_SUCCESS) and (Typ = REG_DWORD);
+      Result := (RegQueryValueEx(K, PChar(ValueName), nil, @Typ, PByte(@Value), @Size) = ERROR_SUCCESS) and (Typ = REG_DWORD);
       RegCloseKey(K);
       RegCloseKey(K);
     end else
     end else
       Result := False;
       Result := False;

+ 4 - 4
Projects/Src/Setup.InstFunc.pas

@@ -385,7 +385,7 @@ begin
           end;
           end;
         REG_BINARY: begin
         REG_BINARY: begin
             if (Size >= 1) and (Size <= 4) then begin
             if (Size >= 1) and (Size <= 4) then begin
-              if RegQueryValueEx(K, FilenameP, nil, nil, @Count, @Size) <> ERROR_SUCCESS then
+              if RegQueryValueEx(K, FilenameP, nil, nil, PByte(@Count), @Size) <> ERROR_SUCCESS then
                 { ^ relies on the high 3 bytes of Count being initialized to 0 }
                 { ^ relies on the high 3 bytes of Count being initialized to 0 }
                 Abort;
                 Abort;
               NewType := REG_BINARY;
               NewType := REG_BINARY;
@@ -393,7 +393,7 @@ begin
           end;
           end;
         REG_DWORD: begin
         REG_DWORD: begin
             Size := SizeOf(DWORD);
             Size := SizeOf(DWORD);
-            if RegQueryValueEx(K, FilenameP, nil, nil, @Count, @Size) <> ERROR_SUCCESS then
+            if RegQueryValueEx(K, FilenameP, nil, nil, PByte(@Count), @Size) <> ERROR_SUCCESS then
               Abort;
               Abort;
           end;
           end;
       end;
       end;
@@ -454,14 +454,14 @@ begin
           end;
           end;
         REG_BINARY: begin
         REG_BINARY: begin
             if (Size >= 1) and (Size <= 4) then begin
             if (Size >= 1) and (Size <= 4) then begin
-              if RegQueryValueEx(K, PChar(Filename), nil, nil, @Count, @Size) = ERROR_SUCCESS then
+              if RegQueryValueEx(K, PChar(Filename), nil, nil, PByte(@Count), @Size) = ERROR_SUCCESS then
                 { ^ relies on the high 3 bytes of Count being initialized to 0 }
                 { ^ relies on the high 3 bytes of Count being initialized to 0 }
                 CountRead := True;
                 CountRead := True;
             end;
             end;
           end;
           end;
         REG_DWORD: begin
         REG_DWORD: begin
             Size := SizeOf(DWORD);
             Size := SizeOf(DWORD);
-            if RegQueryValueEx(K, PChar(Filename), nil, nil, @Count, @Size) = ERROR_SUCCESS then
+            if RegQueryValueEx(K, PChar(Filename), nil, nil, PByte(@Count), @Size) = ERROR_SUCCESS then
               CountRead := True;
               CountRead := True;
           end;
           end;
       end;
       end;

+ 2 - 2
Projects/Src/Setup.MainFunc.pas

@@ -2975,8 +2975,8 @@ var
       SECompressedBlockRead(Reader, P^, Size, EntryStrings[EntryType],
       SECompressedBlockRead(Reader, P^, Size, EntryStrings[EntryType],
         EntryAnsiStrings[Entrytype]);
         EntryAnsiStrings[Entrytype]);
       if (MinVersionOfs = -1) or
       if (MinVersionOfs = -1) or
-         (InstallOnThisVersion(TSetupVersionData((@PByteArray(P)[MinVersionOfs])^),
-          TSetupVersionData((@PByteArray(P)[OnlyBelowVersionOfs])^)) = irInstall) then begin
+         (InstallOnThisVersion(PSetupVersionData(PByte(P) + MinVersionOfs)^,
+            PSetupVersionData(PByte(P) + OnlyBelowVersionOfs)^) = irInstall) then begin
         Entries[EntryType].Add(P);
         Entries[EntryType].Add(P);
         if Debugging then
         if Debugging then
           OriginalEntryIndexes[EntryType].Add(Pointer(I));
           OriginalEntryIndexes[EntryType].Add(Pointer(I));

+ 2 - 2
Projects/Src/Setup.ScriptFunc.pas

@@ -617,7 +617,7 @@ var
         var ValueName := Stack.GetString(PStart-3);
         var ValueName := Stack.GetString(PStart-3);
         var Typ, Data: DWORD;
         var Typ, Data: DWORD;
         var Size: DWORD := SizeOf(Data);
         var Size: DWORD := SizeOf(Data);
-        if (RegQueryValueEx(K, PChar(ValueName), nil, @Typ, @Data, @Size) = ERROR_SUCCESS) and (Typ = REG_DWORD) then begin
+        if (RegQueryValueEx(K, PChar(ValueName), nil, @Typ, PByte(@Data), @Size) = ERROR_SUCCESS) and (Typ = REG_DWORD) then begin
           Stack.SetInt(PStart-4, Integer(Data));
           Stack.SetInt(PStart-4, Integer(Data));
           Stack.SetBool(PStart, True);
           Stack.SetBool(PStart, True);
         end else
         end else
@@ -639,7 +639,7 @@ var
         if RegQueryValueEx(K, PChar(ValueName), nil, @Typ, nil, @Size) = ERROR_SUCCESS then begin
         if RegQueryValueEx(K, PChar(ValueName), nil, @Typ, nil, @Size) = ERROR_SUCCESS then begin
           var Data: AnsiString;
           var Data: AnsiString;
           SetLength(Data, Size);
           SetLength(Data, Size);
-          if RegQueryValueEx(K, PChar(ValueName), nil, @Typ, @Data[1], @Size) = ERROR_SUCCESS then begin
+          if RegQueryValueEx(K, PChar(ValueName), nil, @Typ, PByte(@Data[1]), @Size) = ERROR_SUCCESS then begin
             Stack.SetAnsiString(PStart-4, Data);
             Stack.SetAnsiString(PStart-4, Data);
             Stack.SetBool(PStart, True);
             Stack.SetBool(PStart, True);
           end else
           end else

+ 1 - 1
Projects/Src/Setup.ScriptRunner.pas

@@ -317,7 +317,7 @@ begin
   FPSExec := TPSDebugExec.Create();
   FPSExec := TPSDebugExec.Create();
   FPSExec.ID := Self;
   FPSExec.ID := Self;
 
 
-  FPSExec.AddSpecialProcImport('dll', @PSExecOnSpecialProcImport, nil);
+  FPSExec.AddSpecialProcImport('dll', TPSOnSpecialProcImport(@PSExecOnSpecialProcImport), nil);
   FPSExec.OnSourceLine := PSExecOnSourceLine;
   FPSExec.OnSourceLine := PSExecOnSourceLine;
   FPSExec.OnException := PSExecOnException;
   FPSExec.OnException := PSExecOnException;
 
 

+ 8 - 7
Projects/Src/Setup.UninstallLog.pas

@@ -115,6 +115,7 @@ type
 
 
   TDeleteUninstallDataFilesProc = procedure;
   TDeleteUninstallDataFilesProc = procedure;
 
 
+  PUninstallLogFlags = ^TUninstallLogFlags;
   TUninstallLogFlags = set of (ufAdminInstalled, ufDontCheckRecCRCs,
   TUninstallLogFlags = set of (ufAdminInstalled, ufDontCheckRecCRCs,
     ufDoNotUse0, ufAlwaysRestart, ufChangesEnvironment, ufWin64,
     ufDoNotUse0, ufAlwaysRestart, ufChangesEnvironment, ufWin64,
     ufPowerUserInstalled, ufAdminInstallMode,
     ufPowerUserInstalled, ufAdminInstallMode,
@@ -238,7 +239,7 @@ var
   Header64Bit: Boolean;
   Header64Bit: Boolean;
 begin
 begin
   ReadUninstallLogHeader(F, Filename, Header, Header64Bit);
   ReadUninstallLogHeader(F, Filename, Header, Header64Bit);
-  Result := TUninstallLogFlags((@Header.Flags)^);
+  Result := PUninstallLogFlags(@Header.Flags)^;
 end;
 end;
 
 
 { Misc. uninstallation functions }
 { Misc. uninstallation functions }
@@ -401,7 +402,7 @@ begin
 
 
     SetLength(X, SizeOf(Byte) + SizeOf(Integer));
     SetLength(X, SizeOf(Byte) + SizeOf(Integer));
     X[1] := AnsiChar($FE);
     X[1] := AnsiChar($FE);
-    Integer((@X[2])^) := Integer(-L);
+    PInteger(@X[2])^ := -L;
     S := S + X;
     S := S + X;
 
 
     SetString(AData, PAnsiChar(Pointer(Data[I])), L);
     SetString(AData, PAnsiChar(Pointer(Data[I])), L);
@@ -501,12 +502,12 @@ class function TUninstallLog.ExtractRecData(const Rec: PUninstallRec;
   var Data: array of String): Integer;
   var Data: array of String): Integer;
 var
 var
   I, L: Integer;
   I, L: Integer;
-  X: ^Byte;
+  X: PByte;
 begin
 begin
   for I := 0 to High(Data) do
   for I := 0 to High(Data) do
     Data[I] := '';
     Data[I] := '';
   I := 0;
   I := 0;
-  X := @Rec^.Data;
+  X := PByte(@Rec^.Data);
   while I <= High(Data) do begin
   while I <= High(Data) do begin
     case X^ of
     case X^ of
       $00..$FC: begin
       $00..$FC: begin
@@ -1285,7 +1286,7 @@ begin
       WriteSafeHeaderString(Header.AppName, AppName, SizeOf(Header.AppName));
       WriteSafeHeaderString(Header.AppName, AppName, SizeOf(Header.AppName));
     if Version > Header.Version then
     if Version > Header.Version then
       Header.Version := Version;
       Header.Version := Version;
-    TUninstallLogFlags((@Header.Flags)^) := TUninstallLogFlags((@Header.Flags)^) -
+    PUninstallLogFlags(@Header.Flags)^ := PUninstallLogFlags(@Header.Flags)^ -
       GetNonStickyFlags + Flags;
       GetNonStickyFlags + Flags;
     Header.CRC := GetCRC32(Header, SizeOf(Header)-SizeOf(Longint));
     Header.CRC := GetCRC32(Header, SizeOf(Header)-SizeOf(Longint));
     { Prior to rewriting the header with the new EndOffset value, ensure the
     { Prior to rewriting the header with the new EndOffset value, ensure the
@@ -1378,7 +1379,7 @@ begin
     raise Exception.Create(FmtSetupMessage1(msgUninstallUnsupportedVer, Filename));
     raise Exception.Create(FmtSetupMessage1(msgUninstallUnsupportedVer, Filename));
   AppId := ReadSafeHeaderString(Header.AppId);
   AppId := ReadSafeHeaderString(Header.AppId);
   AppName := ReadSafeHeaderString(Header.AppName);
   AppName := ReadSafeHeaderString(Header.AppName);
-  Flags := TUninstallLogFlags((@Header.Flags)^);
+  Flags := PUninstallLogFlags(@Header.Flags)^;
 
 
   for I := 1 to Header.NumRecs do begin
   for I := 1 to Header.NumRecs do begin
     ReadBuf(FileRec, SizeOf(FileRec));
     ReadBuf(FileRec, SizeOf(FileRec));
@@ -1417,7 +1418,7 @@ begin
          (Header.ID <> UninstallLogID[InstallMode64Bit]) or
          (Header.ID <> UninstallLogID[InstallMode64Bit]) or
          (ReadSafeHeaderString(Header.AppId) <> AppId) then
          (ReadSafeHeaderString(Header.AppId) <> AppId) then
         Exit;
         Exit;
-      ExistingFlags := TUninstallLogFlags((@Header.Flags)^);
+      ExistingFlags := PUninstallLogFlags(@Header.Flags)^;
       Result := True;
       Result := True;
     finally
     finally
       F.Free;
       F.Free;

+ 2 - 2
Projects/Src/Setup.WizardForm.pas

@@ -2043,7 +2043,7 @@ type
   PArrayOfProcessInfo = ^TArrayOfProcessInfo;
   PArrayOfProcessInfo = ^TArrayOfProcessInfo;
 var
 var
   Y, I: Integer;
   Y, I: Integer;
-  ProcessInfosCount, ProcessInfosCountNeeded, RebootReasons: Integer;
+  ProcessInfosCount, ProcessInfosCountNeeded, RebootReasons: Cardinal;
   ProcessInfos: PArrayofProcessInfo;
   ProcessInfos: PArrayofProcessInfo;
   AppName: String;
   AppName: String;
 begin
 begin
@@ -2965,7 +2965,7 @@ begin
   else begin
   else begin
     { Check if there's at least one backslash at least one character past the
     { Check if there's at least one backslash at least one character past the
       initial '\\' }
       initial '\\' }
-    P := @PChar(Pointer(T))[2];  { the casts avoid a UniqueString call... }  
+    P := PChar(@PChar(Pointer(T))[2]);  { the casts avoid a UniqueString call... }
     if PathStrScan(P, '\') <= P then begin
     if PathStrScan(P, '\') <= P then begin
       LoggedMsgBox(SetupMessages[msgInvalidPath], '', mbError, MB_OK, True, IDOK);
       LoggedMsgBox(SetupMessages[msgInvalidPath], '', mbError, MB_OK, True, IDOK);
       Exit;
       Exit;

+ 1 - 0
Projects/Src/Shared.Struct.pas

@@ -45,6 +45,7 @@ type
     Build: Word;
     Build: Word;
     Minor, Major: Byte;
     Minor, Major: Byte;
   end;
   end;
+  PSetupVersionData = ^TSetupVersionData;
   TSetupVersionData = packed record
   TSetupVersionData = packed record
     WinVersion, NTVersion: Cardinal;
     WinVersion, NTVersion: Cardinal;
     NTServicePack: Word;
     NTServicePack: Word;

+ 2 - 2
compile.bat

@@ -89,14 +89,14 @@ if errorlevel 1 goto failed
 
 
 echo - Setup.e32
 echo - Setup.e32
 mkdir %DCUDIR_WIN32%\Setup.dpr 2>nul
 mkdir %DCUDIR_WIN32%\Setup.dpr 2>nul
-"%DELPHIXEROOT%\bin\dcc32.exe" %FLAGSE32% -W-IMPLICIT_INTEGER_CAST_LOSS -W-IMPLICIT_CONVERSION_LOSS -NS%NAMESPACES%;Vcl -U"%DELPHIXELIB_WIN32%;%ROPSSRC%" -NU%DCUDIR_WIN32%\Setup.dpr -DSETUPPROJ;%ROPSDEF% Setup.dpr
+"%DELPHIXEROOT%\bin\dcc32.exe" %FLAGSE32% -$T+ -W-IMPLICIT_INTEGER_CAST_LOSS -W-IMPLICIT_CONVERSION_LOSS -NS%NAMESPACES%;Vcl -U"%DELPHIXELIB_WIN32%;%ROPSSRC%" -NU%DCUDIR_WIN32%\Setup.dpr -DSETUPPROJ;%ROPSDEF% Setup.dpr
 if errorlevel 1 goto failed
 if errorlevel 1 goto failed
 
 
 echo - SetupCustomStyle.e32
 echo - SetupCustomStyle.e32
 msbuild.exe SetupCustomStyle.dproj /t:BuildVersionResource /p:Config=Release;Platform=Win32 /nologo /v:q
 msbuild.exe SetupCustomStyle.dproj /t:BuildVersionResource /p:Config=Release;Platform=Win32 /nologo /v:q
 if errorlevel 1 goto failed
 if errorlevel 1 goto failed
 mkdir %DCUDIR_WIN32%\SetupCustomStyle.dpr 2>nul
 mkdir %DCUDIR_WIN32%\SetupCustomStyle.dpr 2>nul
-"%DELPHIXEROOT%\bin\dcc32.exe" %FLAGSE32% -W-IMPLICIT_INTEGER_CAST_LOSS -W-IMPLICIT_CONVERSION_LOSS -NS%NAMESPACES%;Vcl -U"%DELPHIXELIB_WIN32%;%ROPSSRC%" -NU%DCUDIR_WIN32%\SetupCustomStyle.dpr -DSETUPPROJ;VCLSTYLES;%ROPSDEF% SetupCustomStyle.dpr
+"%DELPHIXEROOT%\bin\dcc32.exe" %FLAGSE32% -$T+ -W-IMPLICIT_INTEGER_CAST_LOSS -W-IMPLICIT_CONVERSION_LOSS -NS%NAMESPACES%;Vcl -U"%DELPHIXELIB_WIN32%;%ROPSSRC%" -NU%DCUDIR_WIN32%\SetupCustomStyle.dpr -DSETUPPROJ;VCLSTYLES;%ROPSDEF% SetupCustomStyle.dpr
 if errorlevel 1 goto failed
 if errorlevel 1 goto failed
 
 
 :issigtool
 :issigtool