Connecting Tech Pros Worldwide Help | Site Map

Mangled static library entry points

  #1  
Old September 2nd, 2008, 11:37 AM
Greg Fuller
Guest
 
Posts: n/a
I'm trying to port a library originally written for unix to Windows.
After a bit of work I've finally gotten it to compile and create the
..lib

For the purposes of example, let's say the .lib contains the functions
"foo", "fooey" and "foolish". When I create a test program and try
linking it to the .lib, I get:

error LNK2001: unresolved external symbol _foo testlib.obj
error LNK2001: unresolved external symbol _fooey testlib.obj
error LNK2001: unresolved external symbol _foolish testlib.obj
etc...

Why is it putting an underscore in front of all the function names?

Thanks!
-Greg
  #2  
Old September 2nd, 2008, 12:55 PM
Pavel Minaev
Guest
 
Posts: n/a

re: Mangled static library entry points


"Greg Fuller" <noemail@forspambots.comwrote in message
news:655qb4l0n48f28ud996m10h5me8hucfkp7@4ax.com...
Quote:
I'm trying to port a library originally written for unix to Windows.
After a bit of work I've finally gotten it to compile and create the
.lib
>
For the purposes of example, let's say the .lib contains the functions
"foo", "fooey" and "foolish". When I create a test program and try
linking it to the .lib, I get:
>
error LNK2001: unresolved external symbol _foo testlib.obj
error LNK2001: unresolved external symbol _fooey testlib.obj
error LNK2001: unresolved external symbol _foolish testlib.obj
etc...
>
Why is it putting an underscore in front of all the function names?
It's the standard mangling convention for "cdecl" (i.e. default calling
convention) functions, both on Unix and on Windows.


Closed Thread


Similar Threads
Thread Thread Starter Forum Replies Last Post
utility to intentionally mangle function names? Eric answers 8 November 14th, 2005 05:40 AM
utility to intentionally mangle function names? Eric answers 12 November 14th, 2005 05:27 AM