I'm building a library for a client who has some proprietary algorithms in
their code that they'd like to keep safe.  To this end, they're using a
license manager library that only allows you to use the library on a
licensed machine.

I realise this kind of security is no good against people really interested
in stealing the library, and they know this, but it's better than nothing.

What I was interested in was whether or not it's possible to call
unadvertised library functions.  Libraries are sort of just archived object
files, right?  If I had an internal function called "int foo()" in the
library, and someone created a fake header with an "extern int foo();",
would they be able to access this function?  So far, I haven't been able to
get that to work, but I'm not sure if it's because I'm doing something wrong
or because there's some reason why it doesn't work.

Thanks in advance,
David