Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2016, 22:20   #1
Филипповец
Новичок
Джуниор
 
Регистрация: 15.11.2016
Сообщений: 2
По умолчанию С++, какие библиотеки нужны?

какие библиотеки нужны?
Код:
BOOL paste_to_file(HWND hwnd, LPCTSTR fname)
{
	int              cx, cy, prow;
    BOOL             res;
    DWORD            size, off;
    HGLOBAL          data;
    BITMAPFILEHEADER fh;
    BITMAPINFO*      inf = NULL;
    HANDLE           fp  = INVALID_HANDLE_VALUE;
 
    if(! IsClipboardFormatAvailable(CF_DIB))
        return FALSE;
    if(! OpenClipboard(hwnd))
        return FALSE;
    
    data = (HGLOBAL)GetClipboardData(CF_DIB);
    if(data == NULL)
        goto err;
    
    inf = (BITMAPINFO*)GlobalLock(data);
    if(inf == NULL)
        goto err;
 
    cx   = inf->bmiHeader.biWidth;
    cy   = abs(inf->bmiHeader.biHeight);
    prow = (cx * inf->bmiHeader.biBitCount + 31) / 32 * 4;
    size = (DWORD)prow * cy;
    off  = sizeof(inf->bmiHeader);
 
    if(inf->bmiHeader.biBitCount <= 8)
        off += (1 << inf->bmiHeader.biBitCount) * sizeof(RGBQUAD);
    size += off;
 
    if(size > GlobalSize(data))
        goto err;
 
    fp = CreateFile(fname, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, 
                    FILE_ATTRIBUTE_NORMAL, NULL);
    if(fp == INVALID_HANDLE_VALUE)
        goto err;
 
    ZeroMemory(&fh, sizeof(fh));
    fh.bfType     = 0x4D42;
    fh.bfOffBits  = sizeof(fh) + off;
    fh.bfSize     = size;
 
    res = WriteFile(fp, (LPCVOID)&fh, sizeof(fh), &off, NULL);
    if(!res || (off != sizeof(fh)))
        goto err;
 
    res = WriteFile(fp, (LPCVOID)inf, size, &off, NULL);
    if(!res || (off != size))
        goto err;
 
    FlushFileBuffers(fp);
    CloseHandle(fp);
 
    GlobalUnlock(data);
    CloseClipboard();
    return TRUE;
err:
    if(inf != NULL)
        GlobalUnlock(data);
    CloseClipboard();
 
    if(fp != INVALID_HANDLE_VALUE){
        CloseHandle(fp);
        DeleteFile(fname);
    }
    return FALSE;
}
Филипповец вне форума Ответить с цитированием
Старый 21.11.2016, 10:07   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Компилируете. Смотрите какие функции не нашлись. Идете на мсдн, пролистываете вниз до таблички и видите, что надо подключить.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какие циклы Вам нужны? Utkin Общие вопросы по программированию, компьютерный форум 30 26.04.2015 13:31
Какие математические библиотеки есть для С# ? IT-Lopata C# (си шарп) 4 28.03.2014 17:16
Какие библиотеки подключить? External Visual C++ 0 12.06.2012 17:48
какие нужны программы и библиотеки для старта изучеия Cи++ dimettry Помощь студентам 5 19.02.2010 20:11
Какие нужны сетевые драйверы ALAkey Компьютерное железо 8 20.11.2009 18:51