반응형

프로그래밍 관련 306

메모리 풀 예제1

================================= ================================= ================================= 출처 http://www.myevan.net/phpBB/viewtopic.php?t=2298 #pragma once #define null 0 template class MemoryPool { protected: vector vectorData; vector vectorFree; byte * buffer; unsigned int usedObject; unsigned int maxObject; static T* newInstance() { return (T*)::operator new(sizeof(T)); } static vo..

상태 패턴

상태 패턴 다이어그램 저도 강좌라는걸 써보네요..;; 디자인 패턴중 상태패턴에 대해 간단하게 설명해 보려고 합니다. 보통 상태패턴( State Pattern )은 'Object의 속성을 다른 객체에 위임한다' 라 되어 있으며, 구현 목적은 '다른 종류의 객체들이 공통 속성을 가지는 경우, 속성의 구현을 포함하는 객체에서 분리시킨다' 라고 되어 있습니다. 따라서 구현을 위해서는 속성을 가진 객체와 실제 속성을 구현하려는 객체가 필요합니다. 좀더 쉽게 말하면, A, B, C 라는 객체가 있는데, Move, Attack, Guard, Stop 등 공통되는 구현이 있다면, 이러한 액션을 취하는 속성들을 따로 분리해서, 구현한다는게 상태패턴의 목적입니다. 그럼, 소스 위주로 설명하겠습니다. #include #in..

비트연산자 구분 값을 2개를 BYTE나 DWORD 하나의 값으로 만들어 보낼때

================================= ================================= ================================= #define MAKEWORD(a, b) ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) 16) & 0xffff)) #define LOBYTE(w) ((BYTE)(((DWORD_PTR)(w)) & 0xff)) #define HIBYTE(w) ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff)) ================================= ===========================..

ASP DB Connect(연결) 할때 오류나는 경우 확인법 또는 구성 설정법

================================= ================================= ================================= dbconn.asp //---------------------------------------------------------- //---------------------------------------------------------- 이렇게 코딩 되어있는데 브라우져 메세지창 //---------------------------------------------------------- Microsoft OLE DB Provider for ODBC Drivers 오류 '80004005'[Microsoft][ODBC 드라이버 관..

C++ STL 키값 찾기 팁

================================= ================================= ================================= STL -> MAP map mapTest; map[1] = 12; map[2] = 13; map[3] = 15; map[4] = 17; 여기서 값이 있는지 없는지 확인하고 싶을 경우 find를 이용한다 만약 검색목록에 없는경우 end()를 리턴한다. if( map.find(7) == map.end() ) { printf(L" 해당 키값이 없습니다. "); } lower_bound() , upper_bound() 각각 첫번째인자 두번째 인자를 보고 리턴 ================================= =======..

string wstring 문자열 부분 복사

================================= ================================= ================================= 일단 test1 과 test2의 string 가 있다고 가정 string test1(L"abcdefghi"); string test2; bcd부분을 복사하고자 할때 test2 = test1.substr(1,3); // 처음 a부분을 지나고 3개의 문자열만 복사 이렇게 해주면 string 끼리 복사해줄수 있다 wstring도 마찬가지이다. ================================= ================================= =================================

10진수 정수 숫자로 변환 함수

================================= ================================= ================================= "0xFF" 또는 "FF" 등의 십육진수로 된 문자열을, 실제 숫자로서 사용하는 방법입니다. 16진수 숫자로 된 문자열은 atoi() 함수로는 변환이 되지 않습니다. strtol() 등을 사용해야 합니다. 십육진수 헥사 문자열을, 숫자(정수)로 변환 예제 소스 파일명: 0.cpp #include #include int main(void) { // 헥사 문자열을 long 으로 char *s = "0x7FFFFFFF"; long n = strtol(s, NULL, 16); printf("%d\n", n); // 출력 결과: 21..

바탕화면 경로 알아오는 API

================================= ================================= ================================= c# Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 자바 바탕화면 경로알기 System.getProperty("user.home"); 윈도우바탕하면경로알기 TCHAR strPath[MAX_PATH]; SHGetSpecialFolderPath(0, strPath, CSIDL_DESKTOPDIRECTORY, FALSE); ================================= ================================= =============..

용량이 큰 텍스쳐 이미지 처리하기.

================================= ================================= ================================= /* 1. Get surface from texture. D3DXLoadSurfaceFromSurface() 2. POOL_SYSTEMMEM -> POOL_DEFAULT IDirect3DDevice9::UpdateSurface( ); IDirect3DDevice9::UpdateTexture( ); 3. POOL_DEFAULT -> POOL_SYSTEMMEM IDirect3DDevice9::GetRenderTargetData( ); 4. ANYTHING -> POOL_DEFAULT IDirect3DDevice9::Stretch..

반응형