본문 바로가기

개발/Visual C++33

error C2995: 함수 템플릿이 이미 정의되었습니다. 오류 대처 방법 저의 경우는 템플릿을 사용하다가 템플릿을 사용하는 클래스의 헤더 파일에 템플릿의 header와 code를 #include 하고 다른 부분의 코드에서 템플릿의 header와 code를 다시 include하는 과정에서 오류가 발생하였습니다. 템플릿의 경우 code까지 include를 시켜야 해서 발생한 문제였는데요, 템플릿을 사용하는 클래스의 헤더에는 템플릿의 헤더만 include하도록 수정하니 문제가 없었습니다. 그리고, 아직 원인은 모르겠는데 템플릿 관련 코드를 수정한 후에는 프로젝트를 단순 빌드(F7)나 솔루션 다시 빌드를 하면 영향을 안 미치고 솔루션 정리 후에 다시 빌드를 해야 영향을 미치네요. 2014. 8. 2.
error C2143: 구문 오류 : ';'이(가) '&' 앞에 없습니다. 오류의 대처 방법 출처: http://kugistory.net/93 다음과 같은 간단한 선언에서 error C2143 오류가 나서 구글링해보니 ostream, istream 앞에 std:: 를 붙여줘야 잘 동작하네요. friend ostream& operator 2014. 8. 1.
std::string에서 const char*으로 변환 출처: http://adnoctum.tistory.com/749 std::string을 쓰다보면 가끔 error C2664: '_findfirst64i32' : 매개 변수 1을(를) 'std::string'에서 'const char *'(으)로 변환할 수 없습니다. 라는 에러를 만나게 되는데요. 이 경우 string 클래스의 c_str() 메소드를 쓰면 문제를 해결할 수 있습니다. string stringFileName; int nHandle; nHandle = _findfirst(strFileName.c_str(), &Data); 2014. 4. 11.
복잡한 연산시 응답 없음 나오는 현상 해결법 출처: http://darkpgmr.tistory.com/42 Windows 프로그래밍에서 복잡한 연산을 하면 다이얼로그가 먹통이 되는 응답없음 현상이 나오는 경우가 종종 있습니다. 이 경우의 제일 좋은 해결 방법은 복잡한 연산을 스레드로 처리하는 것인데 이보다 간단한 방법이 있어서 기록을 해둡니다. 출처에서 찾은 방법인데 카피가 안되게 해놓으셔서 타이핑을 하다가 오타가 나서 한참 헤맸네요. voidProcessWindowMessage() { MSGmsg; while(::PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE)) ::SendMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam); } 이런 함수를 만들어 놓고 복잡한 연산.. 2013. 11. 8.