Basically the line of code
extern char *strlwr OF((char *s));
gives the error
warning C4273: 'strlwr' : inconsistent dll linkage
and I don't know why. It's not my code so I'm having issues figuring out how to fix it.
look for:
_declspec( dllexport );
_declspec( dllimport );
attached to declarations for strlwr. It is something to do with that.
Basically when you declare strlwr in the dll itself, e.g. when the header containing strlwr is read by code compiled into the .dll it should be declared export.
When code that calls the dll reads the header, it should be declared dllimport.
I tend make macro blocks like:
#ifndef DLL_IFACE
#ifdef DLL_IFACE_EXPORT
#define DLL_IFACE _declspec( dllexport )
#else // !DLL_IFACE_EXPORT
#define DLL_IFACE _declspec( dllimport )
#endif // !DLL_IFACE_EXPORT
#endif // !DLL_IFACE
Then for all the symbols in a header which is part of the dll interface I declare those symbols with DLL_IFACE. When the header is read by dll code, I start the .cpp file with "#define DLL_IFACE_EXPORT"