Im trying to load a BMP file
AUX_RGBImageRec *LoadBMP(char *Filename) // Loads A Bitmap Image
{
FILE *File=NULL; // File Handle
You're compiling your application with Character-Set set to UNICODE (Project Settings -> Configuration Options -> General). Windows header files use #defines to "map" function names to either nameA (for multi-byte strings) or nameW (for unicode strings).
That means somewhere in a header file there will be a #define like this
#define auxDIBImageLoad auxDIBImageLoadW
So you're not actually calling auxDIBImageLoad
(there is no function with that name), you're calling auxDIBImageLoadW
. And auxDIBImageLoadW
expects a unicode string (wchar_t const*
). You're passing a multi-byte string (char const*
).
You can do one of the following
auxDIBImageLoad
with auxDIBImageLoadA
LoadBMP
function to accept a unicode string itselfLoadBMP
I'd recommend either changing LoadBMP
to accept a unicode string itself or calling auxDIBImageLoadA
directly (in that order).
Changing the project settings might be OK if it doesn't break a lot of other code.
I would not suggest converting the string though, since it's unnecessary. Calling auxDIBImageLoadA
directly is far easier, and the result is the same.