创建和保存新照片Win32 Webcam应用程序

时间:2014-07-05 23:54:30

标签: c++ winapi stdstring win32gui lptstr

我正在尝试使我的网络摄像头Win32应用程序一次保存多张照片,即保存一张照片然后另一张照片然后另一张等。

为此,我将一个字符串附加到整数变量,以便每个新的照片名称都可以是唯一的,并且符合CreateBMPFile的第二个参数的格式。这通常是写TEXT("字符串文字")的情况,但我需要在创建每张新照片时继续修改文件名。

PBITMAPINFO pbi = CreateBitmapInfoStruct(hwnd, hbm);
int i = 1;
std::string image = "..\\..\\..\\..\\WebCam\\frame" + std::to_string(i) + ".bmp";
while (!exists(image)) {
    LPTSTR filename = (LPTSTR)image.c_str();
    CreateBMPFile(hwnd, filename, pbi, hbm, hdcMem);
    i++;
}

然而,当我点击" Grab Frame"时,这会编译并执行。按钮,它试图保存它,应用程序崩溃,即我再也看不到GUI了,它变成了一个停滞的过程。

我正在使用exists()函数来查看该文件是否存在于系统中:

inline bool exists(const std::string& name) {
    struct stat buffer;
    return (stat(name.c_str(), &buffer) == 0);
}

我也尝试过使用sprintf_s()与崩溃应用程序相同的结果。

0 个答案:

没有答案