Skocz do zawartości

Gucio

Członkowie
  • Postów

    0
  • Dołączył

  • Ostatnio

    Nigdy

Wszystko napisane przez Gucio

  1. Gucio

    Zasoby i midi

    Co do odtwarzania midi z pliku to zmajstrowalem cos takiego: int PlayMIDI(LPSTR lpsFile) { DWORD err; MCI_PLAY_PARMS playParams; MCI_STATUS_PARMS statusParams; /* Check if device is open and plaing song. */ statusParams.dwItem = MCI_STATUS_MODE; if((err = mciSendCommand(midiParams.wDeviceID, MCI_STATUS, MCI_STATUS_ITEM, (DWORD)(LPVOID)&statusParams))) { /* Exit on error other than "Device not open" */ if(err != 0x0101) return FALSE; } else { /* Exit if song is still beeing played. */ if(statusParams.dwReturn == MCI_MODE_PLAY) return FALSE; }; /* Close a Sequencer device associated with file just in case that it was opened before */ mciSendCommand(midiParams.wDeviceID, MCI_CLOSE, MCI_WAIT, (DWORD)(LPVOID)&midiParams); /* Open a Sequencer device associated with file */ midiParams.lpstrDeviceType = (LPCSTR)MCI_DEVTYPE_SEQUENCER; midiParams.lpstrElementName = lpsFile; if((err = mciSendCommand(0, MCI_OPEN, MCI_WAIT|MCI_OPEN_ELEMENT|MCI_OPEN_TYPE|MCI_OPEN_TYPE_ID, (DWORD)(LPVOID)&midiParams))) { /* Error */ char chbuf[80], buff[MAX_PATH]; LoadString(hInstance,9250,chbuf,80); LoadString(hInstance,9251,buff,MAX_PATH); MessageBox(NULL,buff,chbuf,MB_OK|MB_ICONERROR); if(mciGetErrorString(err, &buff[0], sizeof(buff))) { sprintf(buff,"%s", &buff[0]); MessageBox(NULL,buff,chbuf,MB_OK|MB_ICONERROR); }; return FALSE; }; /* The device opened successfully. midiParams.wDeviceID now contains the device ID */ if((err = mciSendCommand(midiParams.wDeviceID, MCI_PLAY, MCI_NOTIFY, (DWORD)(LPVOID)&playParams))) { /* Error */ char chbuf[80], buff[MAX_PATH]; LoadString(hInstance,9250,chbuf,80); LoadString(hInstance,9252,buff,MAX_PATH); MessageBox(NULL,buff,chbuf,MB_OK|MB_ICONERROR); if(mciGetErrorString(err, &buff[0], sizeof(buff))) { sprintf(buff,"%s", &buff[0]); MessageBox(NULL,buff,chbuf,MB_OK|MB_ICONERROR); }; return FALSE; }; /* The device will be close on exit (see DeInitialize_()) or on begining of new song */ return TRUE; }; (zasoby) STRINGTABLE BEGIN 9250, "MCI Error" 9251, "Can't open MCI device" 9252, "Can't play file" END Pytanie jak przemielic ta funkcje i zmosic ja do odtwazania midi (wave'a tez mozna po niewielkiej modyfikacji otworzyc) z zasobow? Probowalem wiele razy i na rozne sposoby (nawet w roznych pozycjach :) ) ale nic z tego. P.S. Nie chcialo mi sie obcinac funkcji wiec ja wrzucilem zywcem z progsa a midiParams to globalna zmienna MCI_OPEN_PARMS Moze ktos to rozgryzie.
  2. Gucio

    Bity BITMAPy

    Yes, we have a winner. Tyle, ze napisalem to makro na potrzeby programu dzialajacego w 9x i NT, wiec uzywam tylko wartosci przydatnych przy odwracaniu koloru (0x00, 0xFF). Pod Win9x ta czesc koloru w gdi jest olewana i moze byc dowolna.
  3. Gucio

    taki sam

    Jednym slowem. Zayebisty. Ale znalazlem jedna wade. Brak przegladarki klass/funkcji/zmiennych (cos jak ma dev czy lcc (lcc - tylko funkcje ale zawsze cos)), albo po prostu jeszcze nie znalazlem.
  4. Gucio

    Bity BITMAPy

    A i jeszcze zapomniałem do wyciągania samych kolorków: BYTE GetRValue(DWORD rgb); BYTE GetGValue(DWORD rgb); BYTE GetBValue(DWORD rgb); Ale nie problemem było by chyba ręczne rozszyfrowanie COLORREF. Swoją drogą pochwalę się udoskonalonym makrem RGB. Mianowicie, prosze państwa RGBA(r,g,b,a); : #define RGBA(r, g ,b, a) ( (DWORD) ( ((BYTE) (r)) | ((WORD) (g) << 8) ) | (DWORD) ( ((DWORD) (b) << 16) | ((DWORD) (a) << 24) ) ) Na co to? W NT'kach, a właściwie od 2k w góre znaczenie ma wartość 'a'. Przy odwracaniu koloru i nie tylko: ~RGB(rr,gg,bb) = ~(0x00rrggbb) daje to kolor zawsze czarny. A ~RGBA(rr,gg,bb,0xFF) = ~(0xFFrrggbb) co daje kolor właściwy. Może się to także przydać do cieniowania w tych systemach, ale nie sprawdzałem. Dobra kończe, bo przynudzam.
  5. Gucio

    Bity BITMAPy

    Sprubój: COLORREF GetPixel(HDC hdc, int XPos, int nYPos); COLORREF SetPixel(HDC hdc, int XPos, int nYPos); int GetPixelFormat(HDC hdc); BOOL SetPixelFormat(HDC hdc,int iPixelFormat,CONST PIXELFORMATDESCRIPTOR * ppfd); Te dwie ostatnie to do czegos innego, ale... Dwie pierwsze dobra, ale wolne. Sama bitmapa ma taka strukture: typedef struct tagBITMAP { // bm LONG bmType; LONG bmWidth; LONG bmHeight; LONG bmWidthBytes; WORD bmPlanes; WORD bmBitsPixel; LPVOID bmBits; /* Points to the location of the bit values for the bitmap. The bmBits member must be a long pointer to an array of character (1-byte) values. */ } BITMAP; wiec możesz spróbować ręcznie się do bitów dobrać.
  6. Najpierw pliczek .rc: WaveName RCDATA "Path\\to\\sound.wav" Następnie funkcyjka: int PlayRcSound (HINSTANCE hInst, LPCTSTR lpszSndName) { HRSRC hr; HGLOBAL hg; LPVOID lpSndData; hr = FindResource (hInst, lpszSndName, RT_RCDATA); if (hr != NULL) { hg = LoadResource (hInst, hr); if (hg != NULL) { lpSndData = LockResource (hg); if (lpSndData != NULL) { return PlaySound((LPCTSTR)lpSndData, NULL, SND_MEMORY | SND_ASYNC); } } } return FALSE; } i wszystko gra jak nalezy, poza tym, ze max rozmiar pliku dodanego do RCDATA (przynajmniej w lcc-win32) oscyluje ok. 70KB. Podobnie mozna dodac text i wszystkie inne badyjany.
  7. Gucio

    C++Builder i pytanko

    Cos zkumalem i jezeli dobrze mysle to moj znajomy proboje cos podobnego klepnac w Delphi - projekt w fazie przemyslen :)
  8. Gucio

    Pliki *.mid a windows

    Nie to raczej nie ta funkcja (albo nie wiem z czym ja jesc). Przydalo by sie oddtwazanie melodyjki z zasobow. Ze to mozliwe to bank tylko jak?
  9. Jak dodac plik textowy do zasobow, w programie go wyciagnac, wyswietlic i ewentualnie zapisac na dysk, ale z tym ostatnim to chyba wiem jak walczyc.
  10. Niestety w lcc kompilator zasobow jest inny i moim zdaniem nie dziala tak jak nalezy. Ale to tylko moje zdanie i mam nadziej, ze ktos go ujazmil i poda mi, to zapewne proste, rozwiazane. Z gory dzieki.
  11. Witam. Mam dosc prozaiczny problem. Mianowicie nie moge do zasobow dodac pliczku wave. Wszystko jest ok. w kompilatorach typu Dev C++, RSXNTDJ, ale co jest z lcc-win32? Klepie standardowe: NAZWAZASOBU WAVE "Nazwa.Pliku" i nic. Nie ma bledu, a w zasobach wave'a brak. Leprze jest to, ze gdy podam scieszke do nieistniejacego pliku to mam blad i kompilacja zostaje przerwana. Probowalem kompilowac zasoby innymi narzedziami, ale lcc nie moze takich plikow odczytac i kicha. Ktos wie co z tym fantem zrobic?
  12. Gucio

    WinAPI + Clean DOS

    Sorry za moja tepote, ale czasami mam zacmy. Thx.
  13. Gucio

    WinAPI + Clean DOS

    Dzieki za podpowiedz. Gdyby nie okazalo sie to zbyt klopotliwe czy mogl bym otrzymac jakis prosty przyklad jak to zrobic?
  14. Gucio

    .rc

    Sorry za mala pomylke chodzilo mi o biblioteke ktora nie ma problemow z wyciaganiem jpeg'ow z zasobow (Restorator jest to za przeproszeniem g*, niszczy exe'ki pozatym eXe-Scope pozwala na wiecej.
  15. Pisze prosty program zabezpieczający Win9x. Problem polega na tym, iż trzeba zablokować możliwość ubicia tego programu, pod 95, czyt. jak zablokować/przejąć klawisze Ctrl + Alt + Del i np. dodać do logu [someone pressed Ctrl + Alt + Del] ?. Można byłoby też pozbyć się menadżera zadań odpalanego podwujnym kliknięciem na pulpit. Jest jeszcze jedna sprawa. Jak nie trzymając aplikacji w pamięci odpalić ją na chwilkę przy zamykaniu systemu? Z góry dzięki - Thank you from the mountain :)
  16. Gucio

    screen

    Właściwie to chodziło mi o kodzik z wykorzystaniem CreateCompatibleBitmap(); No cóż zawsze można pójść na łatwizne 8)
  17. Gucio

    screen

    Można też pobrać kontekst uzadzenia (okna), następnie użyć czegoś w rodzaju CreateCompatibleBitmap(HDC,INT,INT); Szczerze to mi się to nigdy w pełni nie udało, ale jak ktoś sypnie kawałkiem kodu to się nie pogniewam :)
  18. Gucio

    .net

    Niezła ankieta - powinna być jeszcze możliwość zaznaczania wielu opcji oraz dodawania własnych _______________ A co do głosowania: Dev-C++ lcc-win32 RSXNTDJ (DJGPP)
  19. Gucio

    skanowanie procesów

    Spróbujcie skanować procesy pisząc pod RSXNTDJ - jeśli jest to możliwe to zpewne można się przy tym pociąć klawiszami :)
  20. Gucio

    WinAPI + Clean DOS

    OK. Dziwny mam problem, a rozwiązanie jeśli jest to jest zapewne bardzo proste. Mianowicie piszę jak można się domyślić programik w WinAPI, ale chciałbym aby miał możliwość wykonania pewnych funkcji również z poziomu DOS'u i jego klonów. Jak ktoś nie wie o co mi chodzi to może inaczej. Ma to działać mniejwięcej jak regedit.exe - pod oknami fajne GUI, a pod DOS'em tylko najpotrzebniejsze funkcje. Mam nadzieje, że da się to zrobić. Metoda z umieszczeniem w jednym pliku main(); i WinMain(); przyniosła marne skutki. Sorry for my poor Polish :D
  21. Gucio

    .rc

    Właściwie to również natknąłem się na ten problem. Dodatkowo chce te jpeg'i wcisnąć do zasobów. Dodaje więc pytanko. Gdzie można znaleść darmowe źródła biblioteki do zabawy jpeg'ami (w tym wyciąganie ich z zasobów - nie koniecznie, ale zawsze to mniej roboty), która skąpiluje się pod RSXNTDJ (DJGPP), lcc-win32 i Dev-C++ ?
×
×
  • Utwórz nowe...