A couple of ideas: was __declspec(dllimport) used when building the app and __declspec(dllexport) when building the DLL? I believe those will mess with the C++ name mangling if one or the other is not present, which if true would cause it not to find the function in the DLL at run-time.
(Those have always been a bit like magic cookies to me, I've never experimented with them.)
Alternatively, the .h file for the DLL may need
extern "C" {
wrapped around it if being called from C++ which appears to be the case. Although I would have expected the log4cxx header to include this already:
#ifdef __cplusplus
extern "C" {
#endif
[function definitions]
#ifdef __cplusplus
}
#endif