Working compilers #1
FactoryXCode
started this conversation in
General
Replies: 1 comment
-
Ok, Got it working with Delphi XE2 up to XE7. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi Renate,
The code doesn't work on for example Delphi XE7 and maybe above.
For example:
And some more issues like the declaration of this method:
This will produce the error: [dcc32 Error] uScaleWMF.pas(144): E2555 Cannot capture symbol 'RTS'
To solve this error, the function parameters should be like this:
Note the first parameter that is declared as const. This would be ok using guids, pointers or other types that shouldn't be affected while processing, but not for records containing methods or interfaces that would affect the reference counting mechanism .
An other issue is the declaration of IntToHex(hr), this should be IntToHex(hr, 8), because the hr size should be equivalent to HResult which is a 32-bit value (Long). A long is 4 bytes even on 64-bit operating systems.
The method StrCmpLogicalW is not present in Delphi compiler versions < 29.0. This issue has been added to MFPack WinApi.MediaFoundationApi.MfUtils.
So, unit uDirectoryTree uses clause needs to be expanded with Winapi.MediaFoundationApi.MfUtils;
By the way: I had to re assemble the whole project, because when compiling in DX7, no dcu's could be found in a path pointing to Madsi.
Regards Tony.
Beta Was this translation helpful? Give feedback.
All reactions