Since I needed more elaborate RTTI on published methods for a GExperts experiment, I've put the code by Hallvard Vassbotn in a repository on GitHub.
Since I needed more elaborate RTTI on published methods for a GExperts experiment, I've put the code by Hallvard Vassbotn in a repository on GitHub.
Pull requests are welcome.
For now I've imported everything in Delphi 2007 and wrote a rudimentary readme.
Next step is to fix the known bugs and upgrade some bits I urgently need to Unicode Delphi versions, then port more bits.
https://github.com/jpluimers/HVRTTIUtils
https://github.com/jpluimers/HVRTTIUtils
Pull requests are welcome.
For now I've imported everything in Delphi 2007 and wrote a rudimentary readme.
Next step is to fix the known bugs and upgrade some bits I urgently need to Unicode Delphi versions, then port more bits.
https://github.com/jpluimers/HVRTTIUtils
https://github.com/jpluimers/HVRTTIUtils
Great Jeroen Wiert Pluimers, that's nice of you :).
ReplyDeleteLet me know if you need any assistance.
Typo https://github.com/jpluimers/HVRTTIUtilshttps://github.com/jpluimers/HVRTTIUtils :)
ReplyDeleteMost of the code needs to be updated for newer Delphi versions/platforms and some pieces can be removed because they are part of TypInfo.pas now or are around in other places of the RTL.
ReplyDeleteAgustin Ortu fixed. Thanks.
ReplyDeleteStefan Glienke GExperts tries to be compatible with really old Delphi versions. So I will make it more compatible with more recent versions, but keep the "old" stuff.
ReplyDeleteHallvard Vassbotn if you could help with this issue, that would be great: github.com - RTTI for the published method "Test1" of class "TMyClass" has 38 extra bytes of unknown data! · Issue #1 · jpluimers/HVRTTIUtils
ReplyDeleteI've only browsed the code on my phone, but my guess is that they have added RTTI for the parameters.
ReplyDeleteIf so, the roundabout way of trying to discover the parameters should not be needed in newer Delphi versions.
This was a long time ago! :)
ReplyDeleteI don't have D2006 installed any more. Have D2009 installed, but it wont start duo to this: plus.google.com - Error: Value cannot be null.Parameter name: key: Thanks to Kjell-Olov Högdahl... - the workaround does not seem to work so far.
My day-to-day version now is XE6. There have been changes to the VMT and RTTI layouts since D2006, of course. Do you want me to commit changes?
I've updated the VMT layout to match XE6 and D2009 System.pas defines. There are still mismatches in published methods that cause the error you see. What version are you using initially? Do you have easy access to multiple versions?
Hallvard Vassbotn I'm about to push a few change sets that make everything build in Delphi XE8. Can you diff your work against that?
ReplyDeleteSure. I've changed very little anyway:)
ReplyDeleteHallvard Vassbotn just send a pull request againt the current master; making my changes compatible with Delphi 2007 took more time than anticipated. I will merge your changes in.
ReplyDeleteDone :)
ReplyDeleteJeroen Wiert Pluimers #1 on your TODO list should be writing unit tests ;)
ReplyDeleteStefan Glienke since the current test code duplicates so much from the actual units, I'd rather first understand the test code before converting it into unit tests.
ReplyDeleteSo feel free to add an issue converting the test code to unit tests.