The OTA doesn't support it. The pointer I can give you is @Basepasprojopts@TProjPageNames@$bctr$qqr30Basepasprojopts@TProjPageGroup and IIRC I gave them you already on June 30, 2014.
Simon Stuart Oh, I know how I can add to "Tools->Options" and I am doing that already (not very difficult). I was asking for adding to the project options.
Uwe Schuster I don't remember that I ever asked for that. And in june I did not work on any IDE plugin iirc - but I am getting old and keep forgetting things :p
Simon Stuart I'm also interested in this case and have a plan for tests and experiments on the topic :) If you share this example with me too - will be grateful.
Nicholas Ring Yes. TProjPageNames is a TStringList descendant that holds the classnames of the pages. In most cases adding your own page makes sense when the TProjPageGroup is in [pgAllPages, pgAllPackagePages] unless you want to show your pages by intention also in Run | Parameters...
Stefan Glienke Sorry for side tracking your help request but I am interested in the technique that Uwe Schuster has raised.
I have seen mangled method signatures (what is the right word?) before but how do you go about converting a method you are interested in to one, so you can find the entry point to it?
1. Create a small project that has a class and a method with the desired names and arguments. 2. Compile your project. 3. Read the name out of the .map file.
There are probably tools for this, but this approach works for any compiler.
Nicholas Ring BPLs, which technically DLLs, export and import mangled names. Signature would not correct, because there is no information about the result. Static or dynamic linking are two options to call the methods. Information on mangling can be found in $(BDS)\source\cpprtl\Source\misc\unmangle.c or http://edn.embarcadero.com/article/27758.
I can't see any OTAPI way of doing it but it seems that Simon Stuart has you covered :)
ReplyDeleteSimon Stuart I was hoping for you to have a solution! :) Looking forward to see it
ReplyDeleteThe OTA doesn't support it. The pointer I can give you is @Basepasprojopts@TProjPageNames@$bctr$qqr30Basepasprojopts@TProjPageGroup and IIRC I gave them you already on June 30, 2014.
ReplyDeleteSimon Stuart Oh, I know how I can add to "Tools->Options" and I am doing that already (not very difficult). I was asking for adding to the project options.
ReplyDeleteUwe Schuster I don't remember that I ever asked for that. And in june I did not work on any IDE plugin iirc - but I am getting old and keep forgetting things :p
Simon Stuart I'm also interested in this case and have a plan for tests and experiments on the topic :)
ReplyDeleteIf you share this example with me too - will be grateful.
Stefan Glienke Check the attachment of the mail from the given date for the given BPL export.
ReplyDeleteAh, that email was in another context that's why I did not remember it. I will look into if that helps, thanks
ReplyDeleteUwe Schuster Would that gobbly-gook be the constructor for BasePasProjOpts.TProjPageNames, taking a TProjPageGroup as a parameter?
ReplyDeleteNicholas Ring Yes. TProjPageNames is a TStringList descendant that holds the classnames of the pages. In most cases adding your own page makes sense when the TProjPageGroup is in [pgAllPages, pgAllPackagePages] unless you want to show your pages by intention also in Run | Parameters...
ReplyDeleteStefan Glienke Sorry for side tracking your help request but I am interested in the technique that Uwe Schuster has raised.
ReplyDeleteI have seen mangled method signatures (what is the right word?) before but how do you go about converting a method you are interested in to one, so you can find the entry point to it?
Nicholas Ring Brute force way:
ReplyDelete1. Create a small project that has a class and a method with the desired names and arguments.
2. Compile your project.
3. Read the name out of the .map file.
There are probably tools for this, but this approach works for any compiler.
David Heffernan Thanks for the brute force way - a very handy way.
ReplyDeleteJust wondering how it is done when the class isn't available (like some of the IDE objects).
Nicholas Ring BPLs, which technically DLLs, export and import mangled names. Signature would not correct, because there is no information about the result. Static or dynamic linking are two options to call the methods. Information on mangling can be found in $(BDS)\source\cpprtl\Source\misc\unmangle.c or http://edn.embarcadero.com/article/27758.
ReplyDeleteUwe Schuster Thanks for the info :)
ReplyDelete