Hi Valery and other ROOT'ers of the world, On Fri, 14 Apr 2000 18:21:41 -0400 "Valeri Fine (Faine)" <fine@bnl.gov> wrote: > I am just curious did anybody see such sort of problem for Windows ? AFAIK, no. But that doesn't mean it's not there. On Windoze, you still have no way of knowing what is in a Dynamical Loadable Library (DLL, or on Unix's: Shared Library), just by looking at the name. You _must_ use _some_ utility to get that information. Now, I've no idea what's avaliable in Micros**t Visual C++, but as far as I remember there is some shell utility that list the symbols in the library. You should think that the "quickviewer" should do the job, after all Windoze is suppose to be "user friendly" isn't it, but no surprise, it doesn't. And wether the supposed utility of Micros**t Visual C++ know how to demangle I do not know. In any case, ASAIK, the utility is a shell application i.e., you have to open a "DOS" prompt and play around in that one - which is enough for many Windoze users to go haywire. CygWin, being a GNU port to Windoze, _has_ the previously mentioned utility "nm", just like on Linux. However, you can not apply this utility to a DLL created by Micros**t Visual C++ for some, to me unknown, reason. And ofcourse the CygWin "nm" knows how to demangle C++ symbols. You may think having the export files around would help you, but they really don't. You still have to locate the symbol you're looking for. Well first instinct: Use the "Find Files and Folders" entry in the start menu of Windoze and search for a "*.exp" with an occurence of the sought symbol - however, it will probably not work. The reason: The symbols listed in the export libraries are mangled! Hence you really need to know the mangling of your compiler (and who does), to use this method efficiently. So we're back to square one: * You have to use some utility to look throughthe symbols in the libraries. - Micros**t Visual C++ may have such a utility. - CygWin has "nm" which also does demangling. * Yoy probably want to do a query on the output from the utility, to select one and only one library. - It's not apparent how you an do that using standard Windoze utilities. "Find ..." doesn't work. You probably have to manually browse - using a "DOS" prompt application - through all possible candidates your self. - CygWin supplies "grep", so you can set up a nice pipeline (as you would in Unix's) to select the library needed: cygwin prompt% nm -C Root_*.lib | grep "TParticle" | \ grep -v " U " | less In short: You're not better of using Windoze, compared to Unix's. In fact, using Micros**t Visual C++, you're probably doing worse. So if you insist on using Windoze (remember the anti-trust conviction?), you should use CygWin to get the optimum development environment. This, of course is old news. Maybe I'd be a good thing for the ROOT team also to dsitribute binary releases for the Windoze/CygWin combination as well as the Windoze/Micros**t Visual C++. Maybe you could do that Valery? Anyway, that's my two pennies worth. Back to you Valery. Christian ----------------------------------------------------------- Holm Christensen Phone: (+45) 35 35 96 91 Sankt Hansgade 23, 1. th. Office: (+45) 353 25 305 DK-2200 Copenhagen N Web: www.nbi.dk/~cholm Denmark Email: cholm@nbi.dk
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:23 MET