Override Napisano Sierpień 15, 2009 Zgłoś Share Napisano Sierpień 15, 2009 Mam taki problem jak w temacie. Nie będę się rozpisywał na ten temat, podam tylko parę informacji. #include <windows.h> CONST CHAR ClassName[] = "T"; INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lStart, INT nShow){ WNDCLASSEX wa; wa.hInstance = hInst; wa.lpszClassName = ClassName; wa.lpfnWndProc = DefWindowProc; wa.style = CS_DBLCLKS; wa.cbSize = sizeof(WNDCLASSEX); wa.hIcon = LoadIcon(0,IDI_APPLICATION); wa.hIconSm = LoadIcon(0,IDI_APPLICATION); wa.hCursor = LoadCursor(0,IDC_ARROW); wa.lpszMenuName = 0; wa.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wa.cbWndExtra = 0; wa.cbClsExtra = 0; if(RegisterClassEx(&wa) == 0) return 0; HWND Okno = CreateWindowEx(0, ClassName, "Tytul‚ okna", WS_OVERLAPPEDWINDOW, 50, 50, 100, 100, 0, 0, hInst, 0); ShowWindow(Okno, SW_SHOW); MSG msgs; while(GetMessage(&msgs, 0, 0, 0)){ TranslateMessage(&msgs); DispatchMessage(&msgs); } return msgs.wParam; }$,Z0jx+$jKŁyĘ-jH)][K[Y[YY[H MŃ]ÓX NOOHZ[[YH[OO_ Używam kopilatora MinGW, a edytora Code::Blocks. Proszę o pomoc. Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Sierpień 15, 2009 Zgłoś Share Napisano Sierpień 15, 2009 jakiegoś liba nie masz dołączonego Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Override Napisano Sierpień 16, 2009 Autor Zgłoś Share Napisano Sierpień 16, 2009 Aby nie zaśmiecać forum napiszę w tym temacie. Wie ktoś dlaczego mi niemoże znowu tego skompilować. #include <DirectX/ddraw.h> #include <windows.h> CONST CHAR ClassName[] = "DirectDraw"; LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wPar,LPARAM lPar){ switch(msg){ case WM_PAINT: break; case WM_CLOSE: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,msg,wPar,lPar); } return 0; } INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lStart, INT nShow){ WNDCLASSEX wa; wa.hInstance = hInst; wa.lpszClassName = ClassName; wa.lpfnWndProc = WndProc; wa.style = CS_DBLCLKS; wa.cbSize = sizeof(WNDCLASSEX); wa.hIcon = LoadIcon(hInst,"01"); wa.hIconSm = LoadIcon(hInst,"01"); wa.hCursor = LoadCursor(0,IDC_ARROW); wa.lpszMenuName = 0; wa.hbrBackground = (HBRUSH) (COLOR_WINDOW + 13); wa.cbWndExtra = 0; wa.cbClsExtra = 0; if(RegisterClassEx(&wa) == 0) return 0; HWND Okno = CreateWindowEx(0, ClassName, "DirectDraw", WS_POPUP, 50, 50, 100, 100, 0, 0, hInst, 0); ShowWindow(Okno, SW_SHOW); LPDIRECTDRAW lpDD = NULL; if(DirectDrawCreate(NULL, &lpDD, NULL) != DD_OK) MessageBox(HWND_DESKTOP, "Treść komunikatu", "Tytuł komunikatu", MB_OK); lpDD->SetCooperativeLevel(Okno, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN); lpDD->SetDisplayMode(1280, 1050, 32); MSG msgs; while(GetMessage(&msgs, 0, 0, 0)){ TranslateMessage(&msgs); DispatchMessage(&msgs); } return msgs.wParam; return 0; } Link do komentarza Udostępnij na innych stronach More sharing options...
KaYou Napisano Sierpień 16, 2009 Zgłoś Share Napisano Sierpień 16, 2009 Wyglada na brak libka Header: Ddraw.h. Library: Ddraw.lib. Źródło: http://www.google.pl/search?q=DirectDrawCr...lient=firefox-a -> http://msdn.microsoft.com/en-us/library/ms852936.aspx "(2b || !(2b)) == question" W. Shakespeare http://jakubniwa.pl - świat sztucznej inteligencji Link do komentarza Udostępnij na innych stronach More sharing options...
Override Napisano Sierpień 16, 2009 Autor Zgłoś Share Napisano Sierpień 16, 2009 Używam kompilatora MinGW. Pobrałem najnowsze biblioteki DirectX SDK, zainstalowałem, odpowiednie pliki skopiowałem do katalogu "include\DirectX" (skopiowałem pliki nagłówkowe), a do "lib\DirectX" pliki *.lib. Niewiem co źle zrobiłem ale sądzę że wszystko dobrze. Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Sierpień 16, 2009 Zgłoś Share Napisano Sierpień 16, 2009 Hey zapomniałeś o dodaniu odpowiednich plików *.lib do projektu Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
Override Napisano Sierpień 16, 2009 Autor Zgłoś Share Napisano Sierpień 16, 2009 A możesz powiedzieć jakie to są? Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Sierpień 16, 2009 Zgłoś Share Napisano Sierpień 16, 2009 hey tu masz przykład: DirectDraw przeczytaj uważnie Pozdrawiam! Link do komentarza Udostępnij na innych stronach More sharing options...
Override Napisano Sierpień 17, 2009 Autor Zgłoś Share Napisano Sierpień 17, 2009 Dzięki, bardzo pomogłeś. Link do komentarza Udostępnij na innych stronach More sharing options...
Override Napisano Sierpień 17, 2009 Autor Zgłoś Share Napisano Sierpień 17, 2009 #include <ddraw.h> #include <windows.h> #include "keys.h" CONST CHAR ClassName[] = "DirectDraw"; LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wPar,LPARAM lPar){ switch(msg){ case WM_PAINT: break; case WM_CLOSE: PostQuitMessage(0); break; case WM_KEYDOWN: switch((int)wPar){ case VK_ESCAPE: PostQuitMessage(0); break; } break; default: return DefWindowProc(hwnd,msg,wPar,lPar); } return 0; } INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lStart, INT nShow){ WNDCLASSEX wa; wa.hInstance = hInst; wa.lpszClassName = ClassName; wa.lpfnWndProc = WndProc; wa.style = CS_DBLCLKS; wa.cbSize = sizeof(WNDCLASSEX); wa.hIcon = LoadIcon(hInst,"01"); wa.hIconSm = LoadIcon(hInst,"01"); wa.hCursor = LoadCursor(0,IDC_ARROW); wa.lpszMenuName = 0; wa.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wa.cbWndExtra = 0; wa.cbClsExtra = 0; if(RegisterClassEx(&wa) == 0) return 0; HWND Okno = CreateWindowEx(0, ClassName, "DirectDraw", WS_POPUP, 50, 50, 100, 100, 0, 0, hInst, 0); ShowWindow(Okno, SW_SHOW); LPDIRECTDRAW lpDD = NULL; LPDIRECTDRAWSURFACE lpDDSEkran = NULL; if(DirectDrawCreate(NULL, &lpDD, NULL) != DD_OK) MessageBox(HWND_DESKTOP, "Treść komunikatu", "Tytuł komunikatu", MB_OK); lpDD->SetCooperativeLevel(Okno, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN); lpDD->SetDisplayMode(1280, 1050, 32); DDSURFACEDESC ddsd; ZeroMemory(&ddsd, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); ddsd.dwFlags = DDSD_CAPS; ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; lpDD->CreateSurface(&ddsd,&lpDDSEkran,NULL); HDC hdc, pomocniczy; HBITMAP hBMP; hBMP = (HBITMAP) LoadImage(NULL, "01.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); BITMAP bmp; GetObject(hBMP ,sizeof(bmp), &bmp); pomocniczy = CreateCompatibleDC(NULL); SelectObject(pomocniczy, hBMP); if (lpDD->GetDC(&hdc) == DD_OK){ BitBlt(hdc,0,0, bmp.bmWidth, bmp.bmHeight, pomocniczy,0,0,SRCCOPY); lpDD->ReleaseDC(hdc); } DeleteDC(pomocniczy); DeleteObject(hBMP); MSG msgs; while(GetMessage(&msgs, 0, 0, 0)){ TranslateMessage(&msgs); DispatchMessage(&msgs); } lpDD->RestoreDisplayMode(); if (lpDDSEkran!=NULL) lpDDSEkran->Release(); if(lpDD!=NULL) lpDD->Release(); return msgs.wParam; }%ĘipÓÓF&V7DG&rFV'VrÓÓ3b3#F7VVG2ćB6WGFćw2b3#fW'&FRb3#ŚRFVVGb3#2b3#F&V7DG&rb3#ść7gVć7Fb3cBv5D4U5D4U4\"Bb33ł3b3#F7VVG2ćB6WGFćw2b3#fW'&FRb3#ŚRFVVGb3#2b3#F&V7DG&rb3#ść7s'ĆW'b337G'V7BF&V7DG&rb332ćV&W\"ćVBb33vWDD2b333b3#F7VVG2ćB6WGFćw2b3#fW'&FRb3#ŚRFVVGb3#2b3#F&V7DG&rb3#ść7sGĆW'b337G'V7BF&V7DG&rb332ćV&W\"ćVBb33&VĆV6TD2b33ÓÓ'VĆBfć6VC\"W'&'2v&ććw2ÓÓ I znowu problem. Dodałem wszystkie potrzebne biblioteki, więc sądzę, że to niejest wina bibliotek. Może mi ktoś powiedzieć co jest nie tak i czy to może być wina bibliotek DirectX SDK, bo ja mam najnowsze biblioteki, czyli Microsoft DirectX SDK (March 2009). Link do komentarza Udostępnij na innych stronach More sharing options...
Override Napisano Sierpień 17, 2009 Autor Zgłoś Share Napisano Sierpień 17, 2009 Dobra to wina kursu, będę musiał uczyć się z kilku. Link do komentarza Udostępnij na innych stronach More sharing options...
xevil21 Napisano Sierpień 17, 2009 Zgłoś Share Napisano Sierpień 17, 2009 co do INT - powinno być chyba int? Link do komentarza Udostępnij na innych stronach More sharing options...
Override Napisano Sierpień 17, 2009 Autor Zgłoś Share Napisano Sierpień 17, 2009 Wysłało po prostu bitmapę do uchwytu obiektu, a nie do ekranu. Dlatego wyświetlało że niema w pamięci struktury. A teraz inny problem. Bitmapa została wczytana, raz zauwarzyłem jak ją wyświetliło na milisekundę, ale potem był biały ekran. Kod jest poprawny. Ta wysoka rozdzielczość to dlatego, że mam duży monitor i niechciałem dawać mniejszej, aby mi się długo ekran nie przełanczał pomiędzy rozdzielczościami. #include <ddraw.h> #include <windows.h> #include "keys.h" CONST CHAR ClassName[] = "DirectDraw"; LRESULT CALLBACK WndProc(HWND hwnd,UINT msg,WPARAM wPar,LPARAM lPar){ switch(msg){ case WM_PAINT: break; case WM_CLOSE: PostQuitMessage(0); break; case WM_KEYDOWN: switch((int)wPar){ case VK_ESCAPE: PostQuitMessage(0); break; } break; default: return DefWindowProc(hwnd,msg,wPar,lPar); } return 0; } INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR lStart, INT nShow){ WNDCLASSEX wa; wa.hInstance = hInst; wa.lpszClassName = ClassName; wa.lpfnWndProc = WndProc; wa.style = CS_DBLCLKS; wa.cbSize = sizeof(WNDCLASSEX); wa.hIcon = LoadIcon(hInst,"01"); wa.hIconSm = LoadIcon(hInst,"01"); wa.hCursor = LoadCursor(0,IDC_ARROW); wa.lpszMenuName = 0; wa.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH); wa.cbWndExtra = 0; wa.cbClsExtra = 0; if(RegisterClassEx(&wa) == 0) return 0; HWND Okno = CreateWindowEx(0, ClassName, "DirectDraw", WS_POPUP, 50, 50, 100, 100, 0, 0, hInst, 0); ShowWindow(Okno, SW_SHOW); LPDIRECTDRAW lpDD = NULL; LPDIRECTDRAWSURFACE lpDDSEkran = NULL; if(DirectDrawCreate(NULL, &lpDD, NULL) != DD_OK) MessageBox(HWND_DESKTOP, "Nie dało się utworzyć obiektu DD!", "Błąd", MB_OK); lpDD->SetCooperativeLevel(Okno, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN); lpDD->SetDisplayMode(1280, 1050, 32); DDSURFACEDESC ddsd; ZeroMemory(&ddsd, sizeof(ddsd)); ddsd.dwSize = sizeof(ddsd); ddsd.dwFlags = DDSD_CAPS; ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; if(lpDD->CreateSurface(&ddsd,&lpDDSEkran,NULL) != DD_OK) MessageBox(HWND_DESKTOP, "Nie dało się utworzyć bufera ekranu!", "Błąd", MB_OK); HBITMAP hBMP; hBMP = (HBITMAP) LoadImage(NULL, "01.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); if(hBMP == NULL) MessageBox(HWND_DESKTOP, "Nie dało się wczytać bitmapy!", "Błąd", MB_OK); HDC kPomoc = CreateCompatibleDC(NULL); SelectObject(kPomoc, hBMP); HDC hdc; if(lpDDSEkran->GetDC(&hdc) == DD_OK){ BitBlt(hdc, 0, 0, 300, 225, kPomoc, 0, 0, SRCCOPY); lpDDSEkran->ReleaseDC(hdc); } DeleteDC(kPomoc); DeleteObject(hBMP); MSG msgs; while(GetMessage(&msgs, 0, 0, 0)){ TranslateMessage(&msgs); DispatchMessage(&msgs); } lpDD->RestoreDisplayMode(); if (lpDDSEkran!= NULL) lpDDSEkran->Release(); if(lpDD != NULL) lpDD->Release(); return msgs.wParam; } Link do komentarza Udostępnij na innych stronach More sharing options...
Force Napisano Sierpień 17, 2009 Zgłoś Share Napisano Sierpień 17, 2009 Musisz w WM_PAINT ją odrysowywać. Pisze się "przełączał" "nie ma" "zauważyłem" "nie jest" "nie może" "nie chciałem" Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
Override Napisano Sierpień 18, 2009 Autor Zgłoś Share Napisano Sierpień 18, 2009 Znalazłem parę informacji o WM_PAINT, ale to mi tylko utrudnia sprawę. Jak byś mógł podać linka do artykułu czy kursu, w którym piszą, jak odrysować obecny stan okna, to bym był wdzięczny. Link do komentarza Udostępnij na innych stronach More sharing options...
KaYou Napisano Sierpień 18, 2009 Zgłoś Share Napisano Sierpień 18, 2009 http://www.functionx.com/win32/Lesson16.htm http://www.lanform.com.pl/asm/ase4.html "(2b || !(2b)) == question" W. Shakespeare http://jakubniwa.pl - świat sztucznej inteligencji Link do komentarza Udostępnij na innych stronach More sharing options...
Override Napisano Sierpień 18, 2009 Autor Zgłoś Share Napisano Sierpień 18, 2009 Dzięki, ale do assemblera to nie musiałeś dodawać linka. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.