32. 플러그인의 로딩 - 런타임시 로딩 프로그램의 일부가 되어서는 안 된다. - Win32 가장 쉬운 Win32 함수를 이용한 DLL 로딩.
33. 사용 방법 - extern “C” 컴파일러로 하여금 함수의 이름을 일반적인 C++ 방식으로 만들지 말고 C함수와 같이 꾸미지 않은 상태로 유지하도록 하는 기능이 있다. - _declspec(dllexport) 실행파일의 익스포트테이블에 함수를 넣어준다.
34.
35.
36. Find 시퀀스 내의 모든 항목 사이를 반복하면서 원하는 항목을 찾는 알고리즘. Find(Name.begin(), Name.end(), WantName)
37. TIP 시퀀스 내의 요소들이 정렬되어 있지 않거나 요소들 사이의 규칙성이 없는 상황에서만 알 고리즘을 사용하는 것이 좋다.
38. For_each 시퀀스 내의 각 요소에 대하여 특정한 함수를 실행 하는 알고리즘. for(itr = Entity.begin(); it != Entity.end(); ++itr) (*itr).Update(); For_each(Entity.begin(), Entity.end(), Update); For_each(Entity.begin(), Entity.end(), mem_fun_ref(::Update));
39.
40. TIP 우선 순회를 시작하면 멈출 수가 없다. 그러므로 컨테이너 전체를 순회해야 하는 상 황에서만 사용하자.
41. Count 특정한 조건에 맞는 요소만을 세는 기능이 있는 알고리즘. intnCount = count( Entity.begin(), Entity.end(), 0); intnCount = count_if( Entity.begin(), Entity.end(), EntityCheck());
42. TIP 편리한 기능을 제공하는 알고리즘 이기는 이 지만 많은 요소에 대한 검사는 성능상의 문 제를 가져올 수도 있다.
50. 스마트포인터 C++ 전문가들이 만든 차세대 메모리 관리자. boost 라이브러리에 포함되여 있다. std::auto_ptr//c++표준 boost::shared_ptr//앞으로 표준
51. 메모리누수 Void main() { Game* pp = new Game; //수많은 예외발생 //예> return; 존재. delete pp; } 프로젝트가 커질수록 수많은 예상외의 상황 이 발생하고, 그로 인해 메모리 누수가 발생할 수 밖에 없다.
52. auto_ptr #include <memory> 헤더안에포함되여 있는 스마트 포인터이다. std::auto_ptr<Game> p(new Game); 자기 객체가 사라질때소멸자에서 자동으로 delete를 적용 시켜준다. 하지만 생성된 객체의 소유권은 오직 하나만 존재 한다.
53. shared_ptr 참조 카운팅 방식의 스마트포인터로 C++의 새로운 표준인 tr1에 포함되여있다. std::tr1::shared_ptr<Game> p(new Game); std::tr1::shared_ptr<Game> p2(p); 자원의 참조 개수를 체크한다. 소유권이 여러 개 존재할 수 있다.
55. 멀티코어 사용 VisualStudio 2005, 2008에서 컴파일과 정에는 멀티코어CPU를 지원하지 않는다. 프로젝트 속성 -> C/C++ ->명령줄-> 추가옵션 -> /MP 입력. 멀티코어CPU를 지원한다.
56. 컴파일된 헤더 사용 전반적으로 사용되어지며, 소스수정이 크게 없는 헤더파일을 미리 컴파일 해두고, 다음에 빌드때마 다 다시 컴파일 하지 않고 사용 하는 방법. 프로젝트 설정. 프로젝트 속성 -> C/C++ ->미리컴파일된 헤더 ->미리컴파일 된 헤더 사용 CPP설정 CPP의 속성창에서 위와같이 설정. 컴파일 속도 증가.
57. 증분링크 사용 Obj파일을 합치는 과정에서 메모리배치, 함수 순 서, 코드, 데이터영역 등을 계산하는 시간이 포함 되여 있다. 그래서 매번 수정된 것만을 재계산 하 게 하는 방법이다. 프로젝트 속성->링커->일반 ->증분링크사용 링크속도 증가.