我从互联网上下载了此代码,并从Microsoft Visual Studio Community 2017获得以下编译错误:


  错误C2664'HBITMAP CreateDIBSection(HDC,const BITMAPINFO *,UINT,void **,HANDLE,DWORD)':
  无法将参数2从'const BITMAPINFO *'转换为'const BITMAPINFO *'


我该如何解决?

typedef struct tagBITMAPINFO {
    BITMAPINFOHEADER BitMapInfoHeader;
    RGBQUAD bmiColors[1];
} BITMAPINFO;

char * abMyBitmap = new char[sizeof(BITMAPINFOHEADER) + 100 * 100 * 4]; // ?? todo check this
const BITMAPINFO * pBitMap = (BITMAPINFO*)abMyBitmap;

HBITMAP hBitmap;
VOID * pvBits;

hBitmap = CreateDIBSection( NULL, pBitMap, DIB_RGB_COLORS, &pvBits, NULL, NULL );

最佳答案

为什么要重新定义BITMAPINFO?它已在wingdi.h中定义。删除您的typedef,您的代码将正常编译。

关于c++ - 无法将参数2从'const BITMAPINFO *'转换为'const BITMAPINFO *',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59089475/

10-12 15:55