본문 바로가기

Visual Studio 2008

Exercise 17-2 욕 판별 함수 작성하기. Exercise 17-2 욕 판별 함수 작성하기. 윷놀이 게임 개발팀에서 채팅 내용이 욕인지 구별하는 함수의 작성을 요청해왔다. 아래는 함수의 원형과 사용이 금지된 욕의 리스트가 있다. 인자로 넘겨진 문자열이 욕 리스트에 있는 문자열과 일치하는 경우 true를 반환하도록 구현해보자. bool IsTermOfAbuse (const char* pChatMessage );바보, 병신, 나쁜, 미친 #include #include void IsTermOfAbuse(string sentance);//비속어가 들어가면 경고하고, 아닌경우 sentance를 출력. void main() { string bad1 = "뭔데";//욕이 들어간 문자열 string bad2 = "병신아";//욕이 들어간 문자열 string .. 더보기
간만의 공부글 warning 을 지워보자 중복 정의, 미사용 변수, 변수간 타입의 차이에 의한 경고문 등.. 프로그래밍을 하다보면 으레 이런 경고문들이 뜨게 마련이다. 프로그램 자체에는 영향을 주지 않는데 왠지 보이는게 꺼림찍 하다면 아래와 같은 방법으로 컴파일 시 경고문구가 뜨지 않게 하는것은 어떨까.[물론 왜 가렸는지는 주석을 통해서 알 수 있게 해야한다.] #pragma warning(push) #pragma warning(disable: 4018) 불라불라불라 warning 이 뜨게되는 코드들 #pragma warning(pop) 을 하면 컴파일 시에 위의 번호에 해당하는 경고문구가 뜨지 않게된다. 그러하다고 합니다. 데굴데굴. 만들어놓고 나중에 쓸 예정인 변수라던가. = 을 통한 타입이 다른 값의 대입 등에 쓰면 좋을 듯. 더보기
error LNK2019 에러의 경우 error LNK2019 에러의 경우 막 이 에러가 왜 나는가 해결법은 무엇인가 하는 글들이 많다. 하지만 실제로 그 행동을 해서 에러가 해결되지 않는 경우가 많다. 에러를 자세히 보면 왜 그런 에러가 나는지 알 수 있는데. 일단 에러를 보자. 오류1error LNK2019: "public: int __cdecl CMark::LoadMark(void)" (?LoadMark@CMark@@QAAHXZ) 외부 기호(참조 위치: "public: int __cdecl CMark::Init(void)" (?Init@CMark@@QAAHXZ) 함수)에서 확인하지 못했습니다.Mark.objE9 (E9\Program Main\E9) 이 경우 무엇이 문제일까? init 멤버함수 에서 사용되는 LoadMark 멤버함수가 정.. 더보기
error LNK2001 : 구조체의 주소를 외부 파일에서도 참조할 시 뜨는 에러. 왜 발생하는가 -> extern struct_wpt* m_ptWptAll; 이런식으로 정해두고나서 쓰질 정의된 것이 없기때문에 참조를 하지 못하여 에러가 뜨는 것. 구글링을 해서 검색을 하면 무슨 라이브러리를 추가해야한다는둥 하는데 그냥 코딩을 잘못 한 것인 경우일 확률이 더 높다. 왜 저게 잘못되었냐.. 면 struct_wpt* m_ptWptAll; 라는 문장을 코딩하지 않아서 이다. 위에 extern struct_wpt* m_ptWptAll; 라고 코딩한 내용은 선언이지 정의가 아니다. 다시 말해서 위의 extern 문은 프로그램안에 이런 변수가 있다고 알려주는 역할 밖에는 하지 않는다. 변수의 영역을 잡아주지도 않았는데 어떻게 참조할 수가 있겠는가? 그런고로 .cpp 파일중 하나에서 struct_w.. 더보기
메뉴의 체크표시 변환 C++, MFC void CMainFrame::OnUpdateWindow3(CCmdUI* pCmdUI) { // TODO: Add your command update UI handler code here if(m_nWindowNum==3) pCmdUI->SetCheck(TRUE); else pCmdUI->SetCheck(FALSE); } 구글에서 검색해보면 대부분 이런식으로 SetCheck 를 사용하는 것들에 대한 글이 대다수이다. 하지만 이 방식은 대화상자를 특정 방식으로 생성했을 때에만 작동하며 그 이외에는 작동하지 않는다. 이럴때에 CMenu *hMenu = GetMenu(); if(hMenu->GetMenuState(해당 메뉴의 아이디, MF_BYCOMMAND) != MF_CHECKED){ hMenu->Check.. 더보기