본문 바로가기

Visual C++ 2008 MFC 프로그래밍

error LNK2001 : 구조체의 주소를 외부 파일에서도 참조할 시 뜨는 에러. 왜 발생하는가 -> extern struct_wpt* m_ptWptAll; 이런식으로 정해두고나서 쓰질 정의된 것이 없기때문에 참조를 하지 못하여 에러가 뜨는 것. 구글링을 해서 검색을 하면 무슨 라이브러리를 추가해야한다는둥 하는데 그냥 코딩을 잘못 한 것인 경우일 확률이 더 높다. 왜 저게 잘못되었냐.. 면 struct_wpt* m_ptWptAll; 라는 문장을 코딩하지 않아서 이다. 위에 extern struct_wpt* m_ptWptAll; 라고 코딩한 내용은 선언이지 정의가 아니다. 다시 말해서 위의 extern 문은 프로그램안에 이런 변수가 있다고 알려주는 역할 밖에는 하지 않는다. 변수의 영역을 잡아주지도 않았는데 어떻게 참조할 수가 있겠는가? 그런고로 .cpp 파일중 하나에서 struct_w.. 더보기
대화상자 로 경로 찾기 프로그램 내에서 사용되는 코드들을 적어두는 포스팅. 일단은 외형을 짜는 방법부터 시작하였다. 대화상자[ 다이얼로그 ] 를 활용한 경로 알아내기 와 얻은 경로를 에디트 컨트롤 에 집어넣는 법. 도구상자들을 통하여 위와 같이 만들고 우측 파일 찾기 를 더블클릭하거나 이벤트 처리기 추가 를 통해 클릭 관련 처리를 만들어준다. void CTRANSDlg::OnBnClickedPath() { CString strTmp = _T(""); CFileDialog Dlg(TRUE, _T("DAT"), NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST, _T("DAT Files(*.dat)|*.dat|All Files(*.*)|*.*||"),this); if(Dlg.DoModal() == ID.. 더보기
계산기 만들기 프로젝트 - 일단 완료 6. C버튼 처리를 넣어준다. void CCALCDlg::OnBnClickedClear() { mS = "";//초기화 m_sub = 0; UpdateData(false);//변경된 변수값을 화면에 적용. } //화면내용 나타내주는 변수를 초기화 하고 변경된 값을 화면 출력으로 보냄. //저장된 다른 앞의 항도 초기화해줌. 7. 4개의 사칙연산에 따른 코드 작성. void CCALCDlg::OnBnClickedPlus() { m_sub = _tstoi(mS); m_Newsub = 1; mS = ""; UpdateData(false); } void CCALCDlg::OnBnClickedMinus() { m_sub = _tstoi(mS); m_Newsub = 2; mS = ""; UpdateData(fals.. 더보기
계산기 만들기 프로젝트 1. 외형을 짠다. 2. 외형에 맞는 아이콘별 아이디로 바꾸어준다. 3. 변수를 지정해준다. 여기까지 진행한 후의 스샷. 왼쪽은 미출력. 4. 각 숫자 버튼에 따른 클릭시에 숫자 추가하는 이벤트를 넣어준다. public: CString mS; afx_msg void OnBnClickedNumber0(); afx_msg void OnBnClickedNumber1(); afx_msg void OnBnClickedNumber2(); afx_msg void OnBnClickedNumber3(); afx_msg void OnBnClickedNumber4(); afx_msg void OnBnClickedNumber5(); afx_msg void OnBnClickedNumber6(); afx_msg void OnBn.. 더보기
Visual C++ 2008 MFC Chapter 8 비트맵 및 이미지 처리 - 4 냅다 출력화면부터 보고! #endif //_DEBUG //추가부분 inline void RGBtoGray(COLORREF& rgb) { BYTE byGray = (GetRValue(rgb) *30 + GetGValue(rgb) *59 + GetBValue(rgb) *11) /100; rgb = RGB(byGray,byGray,byGray); } //여기까지 //CSaveGrayDemoView.cpp에 추가하는 코드 //이 코드는 RGB를 흑백화 하는 코드이다. ///////////////////////////////// void CSaveGrayDemoView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을.. 더보기