On 11 Sep 2002, Alexandre Julliard wrote: [...]
You now know where a __declspec function begins and ends. This reduces the problem to the parsing of a function declaration. The rest is left as an exersize to the reader. :-)
All you really need is the function name, which should be the last token before the opening '('. The only problem is if you want to find the number of args for stdcall decoration, but we should be able to do without it.
This reminded me of ??2@YAPAXI@Z. There's of ton like it in msvcrt and msvcrt20. Can these really be handled just by parsing the Wine sources. It seems like we would have to do quite a bit of type analysis though I'm not sure how much: do the fields composing a structure matter?. Probably not if it's a pointer to.
As a side note, for any solution that removes the need for spec files to be useful to Winelib developpers, it absolutely has to support C++ (think MFC).
At least in the Winelib case it is not a strict requirement to match the name mangling of MSVC. It just means you cannot call Winelib C++ libraries from native ones and vice-versa, which you currently cannot anyway.
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ Stolen from an Internet user: "f u cn rd ths, u cn gt a gd jb n cmptr prgrmmng !"