3

我正在尝试使用此代码:

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+- 也错误。

4

2 回答 2

6

我想你不见了#include <stdbool.h>

bool不是 C 中的原始类型。您必须包含<stdbool.h>标头才能获得其定义。

于 2012-10-16T19:51:26.197 回答
2

您的错误可能实际上在您显示的代码之前。错误消息说它期待其中之一;因此,在您显示的摘录之前,很可能有一行您没有以分号 ( ;) 结尾,或者您没有以右括号 ( ) 结尾的函数。}一件事是确保您没有将其粘贴到另一个函数的中间;你不能在 C 中嵌套函数。

于 2012-10-16T19:51:50.017 回答