-
June 26th, 2013, 06:03 AM
#1
Does anyone here understand DUMPBIN outout ?
I'm building a DLL using VC++8 (Visual Studio 2005). Let's call it Dll-A. It gets linked to the symbols library for another DLL (let's call it Dll-B). My Debug version builds fine but when I try to build the Release version I get a couple of unresolved externals. I used DUMBIN to show me what was in Dll-B. I dumped both the Debug version and Release version and expected to find a couple of missing functions in the Release version. But in fact, both builds had the same exported functions.
Interestingly, I can link the Release build of Dll-A to the Debug build for Dll-B so I figured there might be some kind of name mangling difference for the functions that can't be found. I viewed them in a Differ and here's what I found:-
DEBUG version of Dll-B (a dump of one particular function)
70 45 0000137A ?connect@signal_base@sigc@@IAE?AV?$_Iterator @$00@?$list@Vslot_base@sigc
RELEASE version of Dll-B (a dump of the corresponding function in my Release build)
70 45 000017F0 ?connect@signal_base@sigc@@IAE?AV?$_Iterator @$0A@@?$list@Vslot_base@sigc
Each actual entry is a lot longer than that. I've only shown the first bit of the line as an example. Notice the sections highlighted in blue. Wherever there's a function that can't be found, the function signature is subtlely different, as highlighted. Does anyone know what the difference means? I can't see any obvious difference in the project's settings - expect for the usual stuff such as the Release version being optimized and not having any Debug information. But the settings are all the ones that I normally use and I've never had this problem before...
"A problem well stated is a problem half solved.” - Charles F. Kettering
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|