본문 바로가기

전체 글110

PS3 데몬즈 소울 Demon's Souls 얼마 전에 접한 게임.. 그냥 재밌다고 하길래 .... Big Hit 판으로 싸게 나왔길래... 안해본 사람은 모른다 -_- 타격감 좋고 게임 분위기 좋고 사운드 좋고 -_- 뭐 나쁜게 없네 하복 엔진 사용했다고 처음에 로고로 큼지막하게 나온다. "언젠가 종잇장 같은 시체" 라는 말을 봤는데 하복 엔진이 시체에 물리 엔진이 종잇장처럼 가볍게 느껴졌다.. 시체가 살짝만 스쳐도 날라가버린다;; 그리고 두대 정도 맞으면 게임오버.. 스타트 지점부터 다시시작.. 몬스터 모두 리젠 되어있음.. 시체 줏어먹기전에 또 죽으면 이전 시체의 돈이 다 날라감.. 등등 몇가지 하드코어 적인 부분만 적응하면 데몬즈 소울의 매력에 흠뻑 빠질수 있을것이다.. 2011. 4. 18.
dll과 메모리 맵 파일(memory-mapped file)의 관계. dll과 메모리 맵 파일(memory-mapped file)의 관계. 메모리 맵 파일, 혹은 메모리 맵드 파일 영어명칭 memory-mapped file.. 이것은 크게 3가지의 목적으로 사용 된다고 한다. 1. exe 나 dll 등의 파일을 읽고 수행하기위해 메모리 맵 파일을 사용한다. 2. 디스크에 있는 데이터에 접근하기위해 메모리 맵파일을 사용한다. 3. 동일한 머신에서 수행중인 다수의 프로세스간의 데이터를 공유하기위해 메모리 맵 파일을 사용한다. 윈도우즈에서 제공하는 프로세스간의 데이터 공유 기능은 내부적으로 메모리 맵 파일을 사용한다. 우선 윈도우즈 시스템에서 애플리케이션이 실행되는 순서를 간단히 살펴보자 test.exe 파일을 실행한다고 가정한다. 1. 시스템에 test.exe 을 실행하라고 .. 2011. 3. 7.
windows 애플리케이션 가상 메모리의 상태를 확인해보자. windows에서 원하는 대상 프로세스의 가상메모리 상태를 알아보는방법.. 프로세스 핸들을 알려면 프로세스 ID 값을 알아야 아래와 같이 핸들을 가져올수 있다. HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProcessId); http://msdn.microsoft.com/en-us/library/aa366907(v=vs.85).aspx typedef struct _MEMORY_BASIC_INFORMATION { PVOID BaseAddress; //pvAddress 매개변수로 전달한 주소를 페이지 크기 단위로 내림한 값. PVOID AllocationBase; // pvAddress 매개변수로 전달한 수고를 포함하는 영역의 시작 .. 2011. 3. 4.
가상메모리의 상태를 알아보자! 윈도우에서 애플리케이션에서 가상메모리공간의 정보를 가져올수 있는 함수를 제공한다. http://msdn.microsoft.com/en-us/library/aa366589(v=vs.85).aspx BOOL WINAPI GlobalMemoryStatusEx( __inout LPMEMORYSTATUSEX lpBuffer ); 위의 함수는 4GB 이상의 메모리를 체크할수 있는 함수 이며 4GB 까지 커지기 전의 시스템에서 사용하던 함수는 함수이름에서 Ex 를 뺀 GlobalMemoryStatus 함수를 사용였다.. GlobalMemoryStatusEx 함수에는 typedef struct _MEMORYSTATUSEX { DWORD dwLength; DWORD dwMemoryLoad;// 머신의 메모리 사용 퍼센트.. 2011. 3. 3.
운영체제 시스템 정보를 알아보자! 운영체제 시스템 정보를 알아보자! CPU 의 타입, 각 프로세스가 사용가능한 가장 큰 주소값 사용 가능항 CPU 및 코어 개수 메모리 할당에 사용하는 페이지 단위의 사이즈 등등의 기본적인 정보를 가져오는 방법을 살펴보자. winbase.h 에 있는 기능을 사용하자.. 아래와 같은 구조체가 정의 되어있고.. typedef struct _SYSTEM_INFO { union { DWORD dwOemId; // Obsolete field...do not use struct { WORD wProcessorArchitecture;// x86, x64, IA-64 등을 나타냄 WORD wReserved;//사용안함 }; }; //cpu의 페이지 크기 x86과 x64 머신에서는 4096,, IA-64머신은 8192바.. 2011. 3. 3.
stl std::remove의 이해와 활용 stl std::remove의 이해와 활용 std::remove 함수는 #include 안에 포함되어있다. std::remove 함수는 각 컨테이너가 가지고있는 erase함수와 다른 동작을 보여준다. 함수의 원형은 이런 식이다. std::remove( begin, end, val ); // 범위지정... 지울 값. 여기서 착각할수 있는 부분은 std::list 의 remove 함수는 실제로 컨테이너 안에 있는 요소가 삭제가되고 list의 사이즈가 줄어든다.. 예로 std::list listTest; for ( int i=0; i 2011. 2. 18.
std::string Ogre::String 생성자의 함수호출 낭비 Ogre::String 에 대한 정보 Ogre 의 옵션에 커스텀 메모리 생성 옵션이 1인 경우에대해..... 아래의 디파인이 들어있다.#define OGRE_STRING_USE_CUSTOM_MEMORY_ALLOCATOR 1 #if OGRE_STRING_USE_CUSTOM_MEMORY_ALLOCATOR typedef std::basic_string _StringBase; //생략 #else typedef std::wstring _StringBase; //생략 #endif typedef _StringBase String; cpp 코드 스타일로 보여주는 기능에 버그가 있어서 사이의 코드가 자동으로 변경되므로 위의 코드에 이상한 부분은 직접 헤더를 열어보시길... 이렇게 선언이 되어있고.. C:\Program .. 2011. 2. 1.
std::string 간단히 속도 테스트를 해보았다.. 2011-02-18 내용수정 >> 결론 4번 /////////////////////////////////////////////////////////////////////////////// std::string 간단히 속도 테스트를 해보았다.. 테스트 방법은 vs 2008 에서 콘솔 프로젝트를 생성하고 설정은 기본으로 만들어진 그대로 진행하였다. 최적화는 기본으로 속도 최적화로 설정 되어있었다.. #include "stdafx.h" #include #include #include #include #pragma comment(lib, "Winmm") #define printLine(x) std::cout 2011. 2. 1.