본문 바로가기
728x90
반응형

프로그래밍학습/MFC8

Run-Time check Failure #2 -stack around the variable'변수' was corrupted Run-Time check Failure #2 -stack around the variable'변수' was corrupted ​ 컴파일이 잘되고 빌드 되었다가 특정 기능을 수행할 때 발생할 수 있습니다. (빌드 중에도 실행된다면 나올 수 있음) ​ 보통은 overflow 문제입니다. 배열의 크기 ​ 포인터나 다른 문제보다 배열의 크기를 설정한거보다 더 많은 데이터를 넣으려고 했는지 먼저 살펴보십시요. ​ 저는 테스트 한다고 struct 배열을 대충 [10] 잡아놓고 잊어먹고 있다가 32개의 data를 밀어넣으려고 하다 계속 error 가 나서 봤더니 더 넣고 싶은데 배열이 모자라니 발생했습니다. ​ char a; // 1byte로 선언하고 scanf("%d",&a); // 4byte 로 받으려니 문제가.. 2021. 5. 20.
MFC int to string 변환 방법 1) CString to Int int i = _ttoi(str); 2) Int to CString str.Format(_T("%d"),i); 특히 두번째것 저 포맷은 진짜 많이 쓰니 잘 보고 다음에도 사용하십시요. mfc는 c++이라 너무 형변환이 까다로워 귀찮아요 2021. 5. 14.
error C2143: 구문 오류 : ';'이(가) '*' 앞에 없습니다. 요즘 받아서 쓰는 설비의 포인터가 사방으로 날아다니고 그런 포인터를 정리해서 모아서 정리한 포인터가 또 있는데 뭐가 어디 하위로 배치되어있는 지 일일히 알아보기도 귀찮아서 대강 필요한 코드가 들어있는 헤더를 include 해서 썼더니 ​ 저런 문제가 자꾸 발생했습니다. ​ 일반 적으로 알려진 해결법 ​ 1.#paragma once ​ 헤더 선언 시 제일 윗줄에 이 문구를 넣으면 된다고들 하는데 실제로 이렇게 간단하게 해결 되는 경우는 잘 없드라구요 한번만 인클루드 하게 해주는 경우로 해당 헤더 내에서만 제대로 작동하는 것 같습니다. ​ 2.클래스 간 include 관계 수정 ​ 사실 이게 제일 많은 경우일 것입니다. 부모 클래스 쪽 헤더나 UI에서 받아온 헤더로 사용하는 하위 헤더끼리 또 서로 inclu.. 2021. 5. 11.
파일 매핑 예제 MMF(IPC) 제작한 검사프로그램과 설비 프로그램의 버젼차이가 커서 도저히 양립할 수 없어 -visual studio 2010(vc++11 안됨) 32bit 시스템 2017에서 제작 64bit opencv 4.10버젼(64bit만 제공) cmake로 32bit로 만들어 써도 결국 vc++11 은 필요한 상황 ​ 설비사와 타협을 본게 : 검사프로그램 ↔ 공용 메모리 ↔ 설비프로그램​ 이렇게 서로 공용구간에다 이미지를 넘기고 검사를 하고 검사결과에 번호를 입혀 다시 공용구간에 넘기면 설비프로그램이 가져가 표시하는 것으로 합의를 봤습니다.​ 예제가 필요해 최호승님이 쓴 열혈 mfc2008(프리랙)을 봤는데 MMF라는 예제가 있었습니다. 간단한 문자열을 전달하는 예제를 제공하십니다. IPC라고 인터넷에 찾으면 리눅스에서 쓰는.. 2021. 4. 20.
c2440: 'static_cast':'void(_thiscall CDlgtest::*)(WPARAM,LPARAM)'에서 LRESULT(_thiscall CWnd::*)변환할수 없습니다. c2440: 'static_cast':'void(_thiscall CDlgtest::*)(WPRAM,LPARAM)'에서 LRESULT(_thiscall CWnd::*)(WPRAM,LPARAM)'변환할수 없습니다.​ 이런 에러가 뜹니다.​ 흔한 경우는 아닌데 저 같은 경우는 2010..13 시절에 쓰여진 학습교재 코드를 빌딩하다 저런 메세지를 봤습니다. ON_MESSAGE 함수는 아무런 문제가 없어보이는데 이런 문제가 생긴다면​ 아래와 같이 해보십시요 ON_MESSAGE(WM_MESSAGE, OnReceivemessage) 이것을 ON_MESSAGE(WM_MESSAGE, (LRESULT(AFX_MSG_CALL CWnd::*)(WPARAM, LPARAM))OnReceivemessage) 요런식으로 수정 원래.. 2021. 4. 16.
[MFC]배열을 포인터로 전달하기- c++ 설비 관련된 데이터를 전달하다보면 배열을 사용하는 경우가 많습니다. 아무래도 뭔가 반복적으로 실행하는 설비 특성 상 배열은 필수적이죠 포인터의 악명과 사용의 불편함은 늘 c언어의 장벽이었고 저처럼 비전공자이지만 어쩔수 없이 프로그램을 하고 있는 설비 엔지니어의 경우는 더욱 고생 스럽습니다. 책에서 배운거하고 달리 보통은 짜여진 코드에서 수정하는 일이 많지만 기본은 간단합니다. 배열은 그 자체가 포인터이다! 이걸 알고 쓰면 일반 데이터를 포인터로 넘기는거랑 다르다는 걸 아시고 편하게 쓰실 수 있어요. 반환값자료형 함수이름(자료형 매개변수[]) { } 반환값자료형 함수이름(자료형 *매개변수) { } 배열을 매개변수로 사용하려면 위 두가지 중 하나를 고르세요 그리고 전체 코드에 통일해서 쓰세요 저는 배열이라는.. 2021. 3. 20.
[MFC]컨트롤 클릭 이벤트 mfc가 은근히 UI짜기가 힘듭니다 그냥 힘든게 아니고 남이 짜놓은거 선배가 오랜시간 넘겨받은 것들 그리고 내가 받은거 다시 손대기가 쉽지 않습니다. 너무나 많은 리소스들이 엮여있는 경우 컨트롤이 쉽지 않습니다. 그러나 하나씩 해봅시다. 픽쳐컨트롤,그룹박스 컨트롤,텍스트 컨트롤 등의 컨트롤은 기본적으로 클릭이벤트를 제공하지 않습니다. 그래서 따로 만들어줘야합니다. 저는 픽쳐컨트롤 내 이미지를 클릭하면 최대 사이즈로 보여주게하기 위해 만들어봤습니다. 왜냐하면 픽쳐컨트롤을 클릭하고 아무리 mfc 클래스 마법사로 더블클릭이나 클릭 함수를 만들어도 그리로 들어가지 않았습니다. 그래서 더블클릭하는 경우를 따로 만들고 그떄 픽쳐컨트롤에 마우스가 위치하면 반응하는 함수로 만들었습니다. // 마우스 더블 클릭 이벤트 .. 2021. 3. 11.
MFC 프로그래밍 책 고르기 비전공자이지만 갑자기 설비 프로그램을 공부하기 위해서 여러가지 책을 봤는데 역시 기초부터 익히기엔 이 책이 최고입니다. 국내에 나온 책중에 제일 탄탄하다....이 이상 간단하게 익히고 싶으신 분은 구글로 충분하겠지요 라는 생각이 듭니다. 어떤 책은 너무 어렵고.... 너무 지면의 낭비입니다. 나머지 이런책들은 말도 안되는 예제의 향연입니다....일부는 교수가 책값을 벌려고 만든 것 같다.라는 책도 있구요 MFC가 워낙 인기는 없는데 소수의 엔지니어 수요는 있는지라 책은 구하는데 특히 그나마 최신책으로 나온 2017 책은 저건...그냥 너무 애들보라고만든책수준이라 도움이 안됩니다. MFC가 처음이면 열혈강의 추천드립니다. 유투브 강의도 무료이니 이것만 익히면 나머진 실무나름입니다. 어차피실전코드는 여기 나.. 2021. 3. 11.
728x90
반응형