Привет всем. Хочу разобраться как программно снять скриншот есть исходник http://forum.antichat.ru/threads/322063/#post-3048264 работаю на VS2010, копирую код добавляю #include "stdafx.h", но не работает выдает ошибки такого рода в чем проблема? 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(74): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(74): error C2440: инициализация: невозможно преобразовать "const char [37]" в "int" 1> Не существует контекста, в котором такое преобразование возможно 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(74): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "IImageBytes" 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(74): error C2470: IImageBytes: выглядит как определение функции, но без списка параметров; пропускается вероятное тело функции 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(74): error C2059: синтаксическая ошибка: public 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(280): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "id" 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(280): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusimaging.h(280): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(384): error C2061: синтаксическая ошибка: идентификатор "IStream" 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(395): error C2061: синтаксическая ошибка: идентификатор "IStream" 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(405): error C2061: синтаксическая ошибка: идентификатор "IStream" 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(443): error C2061: синтаксическая ошибка: идентификатор "PROPID" 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(444): error C2061: синтаксическая ошибка: идентификатор "PROPID" 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(445): error C2061: синтаксическая ошибка: идентификатор "PROPID" 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(453): error C2061: синтаксическая ошибка: идентификатор "PROPID" 1>c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(471): error C2535: Gdiplus::Image::Image(void): функция-член уже определена или объявлена 1> c:\program files\microsoft sdks\windows\v7.0a\include\gdiplusheaders.h(384): см. объявление "Gdiplus::Image::Image"
Все объявления должны явно содержать тип т.к тип int больше не предполагается по умолчанию. Code: #include "stdafx.h" #include <windows.h> #include <stdio.h> #include <iostream> #include <gdiplus.h> using namespace std; #pragma comment(lib, "GdiPlus.lib") /* наш многострадальный lib-файл */ using namespace Gdiplus; /* как хочешь, но мне не в кайф постоянно писать Gdiplus:: */ static const GUID png = { 0x557cf406, 0x1a04, 0x11d3, { 0x9a, 0x73, 0x00, 0x00, 0xf8, 0x1e, 0xf3, 0x2e } }; int main() { GdiplusStartupInput gdiplusStartupInput; ULONG_PTR gdiplusToken; GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); HDC scrdc, memdc; HBITMAP membit; // Получаем HDC рабочего стола // Параметр HWND для рабочего стола всегда равен нулю. scrdc = GetDC(0); // Определяем разрешение экрана int Height, Width; Height = GetSystemMetrics(SM_CYSCREEN); Width = GetSystemMetrics(SM_CXSCREEN); // Создаем новый DC, идентичный десктоповскому и битмап размером с экран. memdc = CreateCompatibleDC(scrdc); membit = CreateCompatibleBitmap(scrdc, Width, Height); SelectObject(memdc, membit); // Улыбаемся... Снято! BitBlt(memdc, 0, 0, Width, Height, scrdc, 0, 0, SRCCOPY); HBITMAP hBitmap; hBitmap =(HBITMAP) SelectObject(memdc, membit); Gdiplus::Bitmap bitmap(hBitmap, NULL); bitmap.Save(L"c:\\screen.png", &png); DeleteObject(hBitmap); //GdiplusShutdown(gdiplusToken); return 0; }