tag:blogger.com,1999:blog-6977069.post114616662270086430..comments2022-10-27T11:40:01.409+02:00Comments on Hallvard's Blog: Published methodsHallvards New Bloghttp://www.blogger.com/profile/09527199955524812466noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-6977069.post-1147541200667026332006-05-13T19:26:00.000+02:002006-05-13T19:26:00.000+02:00http://hallvards.blogspot.com/2006/05/hack-10-gett...<A HREF="http://hallvards.blogspot.com/2006/05/hack-10-getting-parameters-of.html" REL="nofollow">http://hallvards.blogspot.com/2006/05/hack-10-getting-parameters-of.html</A>Hallvards New Bloghttps://www.blogger.com/profile/09527199955524812466noreply@blogger.comtag:blogger.com,1999:blog-6977069.post-1147533369111974712006-05-13T17:16:00.000+02:002006-05-13T17:16:00.000+02:00great posts keep goinggreat posts keep goingAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-6977069.post-1146655776982102092006-05-03T13:29:00.000+02:002006-05-03T13:29:00.000+02:00Ya, that would be interesting.Ya, that would be interesting.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6977069.post-1146215270457609462006-04-28T11:07:00.000+02:002006-04-28T11:07:00.000+02:00AFAIK, the parameter info is not currently stored ...AFAIK, the parameter info is not currently stored in the RTTI-info.<BR/><BR/>The decompilers probably do this by combining the class' RTTI info with the event properties that are assigned to these published methods in the .DFM files.<BR/><BR/>By looking at the .DFM they can find properties of the form and components that point to the published methods in the form. By using TypInfo structures to Hallvards New Bloghttps://www.blogger.com/profile/09527199955524812466noreply@blogger.comtag:blogger.com,1999:blog-6977069.post-1146213170795106302006-04-28T10:32:00.000+02:002006-04-28T10:32:00.000+02:00Now, I have seen Delphi decompilers, and they DO m...Now, I have seen Delphi decompilers, and they DO manage to work out parameters to published methods, so it has to be SOMEWHERE.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-6977069.post-1146208800150396202006-04-28T09:20:00.000+02:002006-04-28T09:20:00.000+02:00"Is it possible to check the method signature"No. ..."<I>Is it possible to check the method signature</I>"<BR/><BR/>No. Unfortunately, the compiler does currently not store information abouut the parameters or calling convention anywhere.<BR/><BR/>If the method you are calling have different parameters than you expect, the program will probably crash. That's why this is currently a hack.<BR/><BR/>More details will follow in a later article.Hallvards New Bloghttps://www.blogger.com/profile/09527199955524812466noreply@blogger.comtag:blogger.com,1999:blog-6977069.post-1146184917907143932006-04-28T02:41:00.000+02:002006-04-28T02:41:00.000+02:00Very interesting post!You say, "the callee has to ...Very interesting post!<BR/><BR/>You say, "the callee has to implement this as a published method with the correct name, parameters and calling convention." Is it possible to check the method signature as well in a similar way - in other words, if one class has a method:<BR/><I>procedure Polymorphic(const S: string);</I><BR/>and another class has a method<BR/><I>procedure Polymorphic(const I: Anonymousnoreply@blogger.com