본문 바로가기

예제

(7)
Windows 에서 BIOS dump 및 Parse (해석) 하기 소스코드 이 프로그램은 작년에 만들었던 것이나, 소스를 오픈 하고 있지 않다는걸 늦게 알아서 지금에서야 공개 하게 되었습니다. 공개된 위치는 다음과 같습니다. https://bitbucket.org/rageworx/rk_bios_dump 소스코드 자체는 MIT License 를 따르며, 내부에 사용된 코드들 중 WinBIOS info (winbiosinfo.h/cpp) 는 BIOS 규격을 공표하는 DMTF / DSP0132 ( 2011-01-26 ) version 2.7.1 의 System Management BIOS (SMBIOS) Reference Specification 문서를 참조로 개발 중 이었던 코드 입니다. 대부분의 표준 SMBIOS 를 parse 할 수 있으나, 일부 Phoenix 사 BIOS 들은..
DirectX/Dsound 용 mp3 to wave 디코더, MinGW용 소스 & 라이브러리 * 기존 v2 소스에 버그가 있어서 업데이트 되었습니다. 현재 v3, 큰 파일을 모두 디코딩 가능. 이 소스는 MinGW (gcc) 에서 DirectX sound (Dsound) 를 사용할 때, MP3 를 음원으로 사용할 경우 유용하게 쓸 수 있는 라이브러리 입니다. 원래 소스는 ffmpeg 에 있는 것을 사용한 상태 이며, 원본 소스가 C 용으로 만들어 져 있었기 때문에 변경 없이 쓰도록 만든 상태 입니다. ( libmp3wav 라이브러리 소스는 g++ 로 컴파일 불가 ) 사용 가능한 컴파일러 제한: i686-posix-dwarf-rev3, Built by MinGW-W64 project) 4.9.2 mp3towave 만 사용할 경우, libmp3wave.a 와 mp3wave.h 파일 압축 C++ 에서..
DirectX 2D 창 메뉴가 안뜨면 창을 옮기리. 부제: DirectX 2D 와 DSound 함께 쓰기 @ Windows7, 8.x 저번 주 에 있었던 DirectX 2D 를 좀 더 개선 하여 다음과 같이 구현 하였습니다.PNG 이미지를 가져와서 D2D 이미지(텍스쳐)로 사용 하도록 함.Dsound 로 WAV 파일을 가져와 출력 하도록함, 백그라운드와 클릭 시 나오는 소리 2가지. 상단 30px 안에서 마우스 왼쪽 클릭 해서 끌면 창 전체가 이동 하도록 함. 렌더링을 thread 로 하도록 함.약간의 UI 적인 요소. 별 대단한 기법이 들어 간 것은 아닙니다만, DirectX 2D 와 Dsound 겹쳐서 쓰는 예제들이 너무 없어서 직접 병합 해 보았습니다. 소스는 MinGW-W64 에서 빌드 되도록 되어 있으며, Code::Blocks 의 프로젝트를 사..
[FLTK] + DirectX8 + MinGW, Direct Input 으로 조이스틱 쓰기 예제. 바로 전에 올린 post 에 이어서 몇가지 작업을 더 해 보고 예제를 올려 볼까 합니다.이번에 적용한 것들은 다음과 같습니다.joystick.h/cpp(c 로 컴파일 가능) 으로 별도 API 처리.FLTK ( 주의: fltk-1.3.3-ts 사용해야 flushing 계속 해도 죽지 않음 ) 를 사용한 시각적 표현.pthread 로 polling 을 통한 update 부터 화면 표시 까지 구현.단, 이 예제에서는 Xinput 이나, Analog 부분 ( Z axis, Z rotate ) 부분 처리는 빠져 있습니다.polling 은 thread 내에서 sleep 을 30ms 하므로, 이론상으로 1초에 30 번 가량일 듯 합니다만, 이정도면 손가락이 신의 속도가 아니면 문제는 없어 보입니다. 예제는 Code:..
MinGW 용 DirectX 8 input Joystick(조이스틱) 예제 (src, lib 포함) MinGW 에서 DirectX 쓰기란 MinGW-W64 오면서 참 많이 편해진 편 입니다만, 여전히 MSDN 에서 제공하는 기본 예제 조차 컴파일이 안되는 비극을 보면 갈 길이 멀어 보이기도 합니다. 이번엔 Joystick 을 DInput 으로 처리 하려니 되는게 없어 Wine 용 DirectX8 header 와 library 등을 MSDN 에서 제공하는 예제 소스와 함께 빌드 할 수 있도록 만들었습니다. 현재 이 소스는 MinGW-W64 기준 최신버젼 (5.1) 에서 빌드가 가능하며, CodeBlocks 에서 project 파일만 열어서 빌드 후 테스트 가능 합니다. 소스는 아래 첨부파일로 붙임을 하겠으며, 원래 소스가 MSDN 공개에서 가져 왔으며, DirectX8 기준이긴 하나, 이쪽 부분은 발전이..
[FLTK] Fl_Group 을 이용한 화면 분할 및 자동 크기 조정. FLTK 는 Windows 나 X11 에서 창의 크기를 조정 할 수 있도록 만들어 져 있습니다만, 기본적으로 resize 를 지원 할 경우 최초 만들어진 창의 크기에 각 위젯(Fl_Widget) 들이 만들어진 크기의 비율(ratio) 로 그 크기가 조정 되게 됩니다. 이런 방법은 최초 만들어진 UI 의 디자인적 요소를 해치지 않고 그 비율을 유지 한다는 장점이 있을 수도 있지만, 좀 더 detail 한 UI 를 적용 하는데 있어서는 오히려 해가 되는 경우가 있습니다. 예를 들어 다음과 같이 만들어진 프로그램의 경우, 최초 실행되는 크기에서 윈도우 크기를 변경 할 경우 비율대로 커지게 되면 다음과 같이 글자 크기만 빼고 비율 대로 늘어지는 모습을 가지게 됩니다. 비율대로 커지는것 까지는 좋게 생각할 수 있..
Delphi 에서 USB 장치 인식 인지하기. 가끔 Device managing 관련 어플을 만들어야 할때가 있는데, 이때 도움이 되는 코드를 만들었습니다. USB 장치가 뜨면 GUID 와 해당 장치의 정보를 알아 올 수 있습니다. 먼저 USBdetector 유닛 소스 입니다. 이걸 쓰려면 다음과 같이 사용이 가능합니다. usb_detector := TUSBdetector .Create(Self); usb_detector.OnUSBArrival := OnConnected; usb_detector.OnUSBRemove := OnLeaved; usb_detector.OnUSBInfo := OnInfo; 예제를 더 들자면 다음과 같은 코드로 사용이 가능합니다.