опубликован 24-01-2001 03:15 MSK
Взялся изучать VC++ и застрял. :((((
Проблема в следующем: Нужно написать программу устанавливающую режим 640х480х16bit и рисующую в этом режиме простую анимацию. Вот какой набросок у меня получился: #include "stdafx.h"
#include <ddraw.h>
LPDIRECTDRAW lpDD;
BOOL DirectDrawInit(HWND hwnd)
{
HRESULT ddrval;
ddrval = DirectDrawCreate(NULL, &lpDD, NULL);
if( ddrval != DD_OK )
{
MessageBox(NULL, "ошибка 1", "", MB_OK);
return FALSE;
}
ddrval = lpDD->SetCooperativeLevel(hwnd, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN);
if( ddrval != DD_OK )
{
lpDD->Release();
MessageBox(NULL, "ошибка 2", "", MB_OK);
return FALSE;
}
ddrval = lpDD->SetDisplayMode(640, 480, 16);
if( ddrval != DD_OK )
{
lpDD->Release();
MessageBox(NULL, "ошибка 3", "", MB_OK);
return FALSE;
}
return TRUE;
}
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
HWND hwnd=GetDesktopWindow();
DirectDrawInit(hwnd);
return 0;
}
Выдает: "ошибка 2", т.е. SetCooperativeLevel() не хочет работать. :( Я так понимаю из-за переменной hwnd, указателя на окно. Но где ее взять? DeskTop ей не нравится, NULL - тоже. Создать окно? Но ведь мне не нужен никакой Windows интерфейс, кроме работы с плоской графикой (не в окне) и файлами!
Исправте пожалуйста эту программу, или пришлите свой работающий исходник. Желательно, чтобы было как можно меньше различных #include <хрен_знает_чего.h> и т.д.
Для меня и так этот Visual С++ темный лес. Впрочем собственно C++ я знаю, но под Windows ничего, кроме баз данных на Paradox не писал. Помогите plz. А то я уже неделю читаю различные умные книги, а в них во всех рассматривается что-то вроде написания своей версии Word. Очень жду Вашей помощи. С уважением, Игорь.