我编写了一个用来读取bmp的函数,可是编译时有个错误一直无法解决,请大家帮忙看看,谢谢
源码如下:
BOOL bSuccess ;
DWORD dwFileSize, dwHighSize, dwBytesRead ;
HANDLE hFile ;
BITMAPFILEHEADER * pbmfh ; hFile = CreateFile (pstrFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL) ; if (hFile == INVALID_HANDLE_VALUE)
return NULL ; dwFileSize = GetFileSize (hFile, &dwHighSize) ; if (dwHighSize)
{
CloseHandle (hFile) ;
return NULL ;
} pbmfh = malloc (dwFileSize) ; if (!pbmfh)
{
CloseHandle (hFile) ;
return NULL ;
} bSuccess = ReadFile (hFile, pbmfh, dwFileSize, &dwBytesRead, NULL) ;
CloseHandle (hFile) ; if (!bSuccess || (dwBytesRead != dwFileSize)
|| (pbmfh->bfType != * (WORD *) "BM")
|| (pbmfh->bfSize != dwFileSize))
{
free (pbmfh) ;
return NULL ;
}
return pbmfh ;
源码如下:
BOOL bSuccess ;
DWORD dwFileSize, dwHighSize, dwBytesRead ;
HANDLE hFile ;
BITMAPFILEHEADER * pbmfh ; hFile = CreateFile (pstrFileName, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL) ; if (hFile == INVALID_HANDLE_VALUE)
return NULL ; dwFileSize = GetFileSize (hFile, &dwHighSize) ; if (dwHighSize)
{
CloseHandle (hFile) ;
return NULL ;
} pbmfh = malloc (dwFileSize) ; if (!pbmfh)
{
CloseHandle (hFile) ;
return NULL ;
} bSuccess = ReadFile (hFile, pbmfh, dwFileSize, &dwBytesRead, NULL) ;
CloseHandle (hFile) ; if (!bSuccess || (dwBytesRead != dwFileSize)
|| (pbmfh->bfType != * (WORD *) "BM")
|| (pbmfh->bfSize != dwFileSize))
{
free (pbmfh) ;
return NULL ;
}
return pbmfh ;
error C2440: '=' : cannot convert from 'void *' to 'struct tagBITMAPINFO *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast
pbmfh = malloc (dwFileSize) ; 不知道如何改,大家帮忙看看,多谢