랭귀지/API
-
StdAfx (미리컴파일된 헤더) 수동 생성!랭귀지/API 2010. 7. 16. 11:17
Dark GDK에서 제공하는 Application Wizard를 사용하여 프로젝트를 만들게 되면, 일단 뚝딱 기본 틀이 만들어지니 편하긴 한데, 뭔가 이상하고, 빠진게 많습니다. 프레임웍 제작과 관련한 강좌에 들어가기전에, 미리 컴파일된 헤더는 우리에게 꼭 필요한 존재인데, App. Wizard에서 자동 생성을 안해주는군요. 미리 컴파일된 헤더라는게 무엇인지 모르시는 분이 계실까 노파심에 간단히 설명드리지면, 우리가 흔히 Win32 어플리케이션을 App. Wizard를 통하여 생성하게 되면 stdafx.h/cpp 이라는 파일이 프로젝트에 기본으로 딸려오는 것을 볼 수 있죠. 미리 컴파일된 헤더 기능(PreCompiled Header:PCH)은 자주 변경되지 않는 긴 소스 파일을 미리 컴파일하여 해당 컴파..
-
실행 도중 이미지가 출력이 안될 때! CreateDIBSection 함수랭귀지/API 2008. 11. 17. 12:36
보통 이미지를 불러올 때 CreateCompatibleBitmap 함수를 사용한다. CreateCompatibleBitmap 함수의 단점은 DC 의 크기가 16MB 로 제한되어 있다는 것이다. 이 문제점의 해결책은 CreateDIBSection 함수이다. HBITMAP MakeDIBSection(HDC hdc, int width, int height) { BITMAPINFO bmi; LPVOID pBits; HBITMAP hBitmap; memset(&bmi.bmiHeader, 0, sizeof(BITMAPINFOHEADER)); bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); bmi.bmiHeader.biBitCount = 24; // 칼라수 : 1, 4, 8, ..
-
FPS 구하기 ( Frame Per Second )랭귀지/API 2008. 11. 17. 12:29
void Framework::UpdateFPS() { static DWORD FrameCnt = 0; static float TimeElapsed = 0; static DWORD lastTime = timeGetTime(); DWORD currTime = timeGetTime(); float timeDelta = (currTime - lastTime)*0.001f; FrameCnt++; TimeElapsed += timeDelta; if(TimeElapsed >= 1.0f) { m_fFPS = (float)FrameCnt / TimeElapsed; TimeElapsed = 0.0f; FrameCnt = 0; } lastTime = currTime; }
-
콘솔창에서 커서 포지션.랭귀지/API 2008. 11. 17. 12:27
#include #include void gotoxy(int x, int y); int main(void) { printf("////////////////////////////////////\n"); printf("/15////////////////////////////////\n"); printf("////////////////////////////////////\n"); Sleep(500); gotoxy(2,2); printf("14\n\n"); } void gotoxy(int x, int y) { COORD Pos = {x - 1, y - 1}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); }