Mikel
2011-07-22 10:19:59 UTC
Hi:
The title summarizes it, but I'll elaborate:
In my app, I use several dlls. They are all (the dlls and the exe) in
the same VS solution, and they are linked together by setting the
project dependencies appropriately.
It was all working and nice. But then I added a function (static) to
one of the classes in one of the dlls, to use it from the exe, and the
linker says it doesn't find it. So I start to check what's going on,
and see that this particular class, and its derived classes are not
exported from the dll (there's no def file, no declspec for these
classes, Dependency Walker shows no exported functions from them...).
But I've been calling functions of those classes from the exe! And
it's been working!
So, what I'm missing? What is the compiler/linker doing to use non
exported functions from a dll? Why doesn't it work for static
functions?
Thanks
The title summarizes it, but I'll elaborate:
In my app, I use several dlls. They are all (the dlls and the exe) in
the same VS solution, and they are linked together by setting the
project dependencies appropriately.
It was all working and nice. But then I added a function (static) to
one of the classes in one of the dlls, to use it from the exe, and the
linker says it doesn't find it. So I start to check what's going on,
and see that this particular class, and its derived classes are not
exported from the dll (there's no def file, no declspec for these
classes, Dependency Walker shows no exported functions from them...).
But I've been calling functions of those classes from the exe! And
it's been working!
So, what I'm missing? What is the compiler/linker doing to use non
exported functions from a dll? Why doesn't it work for static
functions?
Thanks