我试图使用此代码:
bool SaveBMPFile(char *filename, HBITMAP bitmap, HDC bitmapDC, int width, int height);
bool ScreenCapture(int x, int y, int width, int height, char *filename){
// get a DC compat. w/ the screen
HDC hDc = CreateCompatibleDC(0);
// make a bmp in memory to store the capture in
HBITMAP hBmp = CreateCompatibleBitmap(GetDC(0), width, height);
// join em up
SelectObject(hDc, hBmp);
// copy from the screen to my bitmap
BitBlt(hDc, 0, 0, width, height, GetDC(0), x, y, SRCCOPY);
// save my bitmap
bool ret = SaveBMPFile(filename, hBmp, hDc, width, height);
// free the bitmap memory
DeleteObject(hBmp);
return ret;
}
它会抛出这些错误:
bot.c|185|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'SaveBMPFile'|
bot.c|187|error: expected '=', ',', ';', 'asm' or '__attribute__' before 'ScreenCapture'|
我该怎么办?试过不同的代码是行不通的,并尝试使用Gdi + - 也是错误。
答案 0 :(得分:6)
我认为你遗失了#include <stdbool.h>
。
bool
不是C中的基本类型。您必须包含<stdbool.h>
标头才能获得其定义。
答案 1 :(得分:2)
您的错误可能实际上在您展示的代码之前。错误消息表明它正在期待这些事情之一;因此,在您显示的摘录之前,您可能没有以分号(;
)或未使用近冠(}
)终止的函数终止一行。有一件事是确保你没有将它粘贴到另一个函数的中间;你不能在C中嵌套函数。