Programming Language 45

C++ TR1 설치

Technical Report로 줄여서 TR1이라고합니다. 새로운 표준라이브러리로 구버전의 VS2008에서는 지원이 안됩니다.표준라이브러리이기 때문에 그 쓰임새는 배열부터 시작해서 수학공식까지 다양합니다. 스탠다드 네임스페이스에 tr1으로 등록되어있기 때문에,std::tr1 이런식으로 호출해서 사용이 가능합니다. VC2008FeaturePack을 설치하면 되는데, VC가 영문버전이 아니면 지원되지 않습니다.여러 방법으로 설치 해보려 했으나 저의 경우엔 잘 되지 않았습니다. (2011년 11월 27일 기준입니다.) 그런데, 이 라이브러리 자체를 zip형태로 묶어놓은 버전이 있습니다.이 zip 버전을 설치하는 방법을 소개합니다. http://www.boost.org   접속  이 사이트에 접속하면 위 사진과..

inline 함수

인라인함수 #include inline int add(int a, int b){     return a - b;} int main(int argc, char* argv[]){     add(5,3);     return 0;} 위 프로그램의 결과값은 2입니다.inline을 붙이지 않는다고 해도 결과값은 똑같이 2입니다. 그럼 왜 inline함수를 쓸까요? inline을 쓰지 않았다고 가정하면실행과정은.. 1. 메인함수가 실행된다2. 메인함수가 멈춘다 (add함수 호출로 인해)3. add함수를 호출한다4. add함수에서 계산한 값을 리턴한다5. 메인함수로 리턴값을 돌려준다하지만, inline함수를 사용했다고 하면,실행과정은.. 1. 메인함수가 실행된다2. add함수가 실행된다3. add함수에서 계산한 값을..

릴리즈모드 링크에러

릴리즈모드 : 디버깅 없는 출판모드로 디버그모드보다 용량이 두배이상 작습니다.디버그모드 : 평소 사용하는 모드로, 오류발생시 수정을 위한 모드, 실행속도가 느립니다. 릴리즈모드로 돌릴때는 디버그모드보다 프로젝트 설정이 민감하게 작용합니다. 이런 에러가 난다면 1>링크하고 있습니다...1>libcvd.lib(convolve_gaussian.obj) : warning LNK4075: '/EDITANDCONTINUE'이(가) '/OPT:ICF' 사양으로 인해 무시됩니다.1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __heap_alloc이(가) LIBCMT.lib(malloc.obj)에 이미 정의되어 있습니다.1>LIBCMTD.lib(dbgheap.obj) : error LNK..

Namespace

namespace네임스페이스이름공간 VS2008이후 등장했습니다. 예를 들어, A와 B회사가 같이 프로젝트를 하는데,A회사에 int a; 변수가있고,B회사에도 int a; 변수가 있다면, 합쳤을때 변수가 중복되는 문제가 있습니다. 그럼 "B회사에서 int b;로 바꾸면 되지" 라고 하실 수 있으시겠으나대형 프로젝트에서는 일일히 그 변수명을 다 바꿔줄만큼 변수의 수가 작지않습니다. 엄청난 수작업을 요구하기도 하고요. 그래서 네임스페이스가 등장! 네임스페이스를 불러내려면 :: (스코프)를 이용해서 불러야합니다.네임스페이스이름::변수이렇게 부르면 끗. #include namespace A { double i;}namespace B{ int i;}void func(){ A::i=12.345; B::i=123; ..

HRESULT, LRESULT

HRESULT 32비트의 signed 형 정수BOOL형의 TRUE/FALSE와 마찬가지로 SUCCEEDED/FAILED를 사용합니다.하지만 BOOL과는 대조적으로 반드시 값을 리턴받지는 않아도 됩니다. if(FAILED(CreateWindow(...))){       MessageBox("윈도우 생성에 실패했습니다");} 여기서 FAILED에 주목할것이..윈도우 생성에 실패할 경우 CreateWindow()메서드에 문제가 생긴것이기 때문에, 저 메시지 박스가 뜨면 그냥 저 메서드만 보면 됩니다. 하지만, 주의할점이 BOOL형은 TRUE/FALSE가 1/0인데 반해HRESULT는 SUCCEEDED/FAILED가 0/1입니다. * HRESULT 형의 구조 0~15 비트 : RETURN CODE 16~28 비..