I have found the problem, which I missed before. You need to modify your code as per the comments below:
long readfile(char filename[],char ** inputdat)
{
ifstream getit(filename,ios::in|ios::binary);
if(!getit)
{
return 0;
}
long filsize = sizeoffile(filename,B);
*inputdat = new char[filsize];
if(!*inputdat)
{
return 0;
}
getit.read((char*)*inputdat,(filsize));
getit.close();
return filsize;
}
bool writefile(char filename[],char * outputdat, long filesize)
{
ofstream putit(filename,ios::out|ios::binary);
if(!putit)
{
return false;
}
putit.write((char*)outputdat,(filesize));
putit.close();
return true;
}
int main()
{
char* buffer = NULL;
long filesize;
filesize = readfile("TestIn.bmp", &buffer);
if (filesize > 0)
{
writefile("TestOut.bmp", buffer, filesize);
}
return 0;
}