본문 바로가기

프로그래밍/MFC

VisualStudio2015 MFC 버그 vs2005에서 vs2015 로 마이그레이션 하는 과정에서 버그를 하나 발견. 해당 어플리케이션은 MFC로 만들어져 있었는데, 여러개의 EditBox가 있는 다이얼로그에서 입력된 값이 엉뚱하게 변하는 현상이 발생했다. 입력값이 int형일때는 별문제가 없는데, float형일때 문제가 생긴다. 예를 들어 첫번째 EditBox의 입력값이 두번째 EditBox에 잘못 입력이 된다든지, EditBox 입력데이터들끼리 서로 얽히고 난리를 친다. 근데, 릴리즈모드에서만 이 현상이 발생한다. 이전 버전의 vs에서는 발생하지 않았는데, 뭔가 설정이 바뀐건지.. 구글링을 해도 아직까지는 찾지 못함.. 짜응! 더보기
메모장 프로그램 후기 7~8년전에 MFC로 간단한 메모장을 제작을 해보았다. 당시엔 데이터파일을 암호화해서 보안이라는 요소를 첨부한 간단한 메모장 컨셉이었는데.. 사실 여러가지 문제가 있어서 완성은 하였지만, 사용도 거의 안해보고 한동안 쳐다보지 않았다. 그러다가 얼마전 우연한 기회에 다시 유물이 된 프로젝트를 열어 보았고, vs2015로 마이그레이션 하면서 조금 손을 보았다. UI는 완전 다 갈아버려 최소한의 메뉴버튼만 남겨놓았다. 암호파일 관리문제는 zip라이브러리를 사용하였고, 간단한 컨트롤 제어도 생각이 나지않아 msdn 참조와 구글링을 얼마나 했는지 모르겠다. 암튼, 짬짬히 조금씩 다듬어 얼추 사용할만한 수준이 되어 공개를 해본다;; 소스코드도 공개를 할까 생각중이었는데, 워낙 급하게 짜는 바람에 엉망진창이 되어버려.. 더보기
MFC 계층구조 MFC를 처음 배울때 C++ 상속구조를 제대로 활용한 라이브러리라고 했었는데 지금봐도 대단하긴 하다. 요즘이야 워낙 상용엔진이 좋아지긴 했지만, 아직도 일반 어플리케이션에서는 많이 사용한다고 들었다. https://msdn.microsoft.com/ko-kr/library/ws8s10w4(v=VS.100).aspx https://msdn.microsoft.com/ko-kr/library/bk77x1wx(v=vs.100).aspx 더보기
CArchive 클래스 MFC에서는 직렬화 저장방식(serialization) 을 지원하는 CArchive 클래스 라는 클래스가 있다. 쉽게 파일저장 쓰기를 지원하며실제로 이 방식을 사용한 프로젝트를 본 적도 있었다. 필요한 헤더 : afx.h CArchive클래스는 읽기모드(CArchive::load)와 쓰기모드(CArchive::store)로 구분되어 있다.데이터를 읽고 쓰기 위해 CArchive클래스는 CFile클래스와 동일한 함수가 있다. (Write(),Read())Write(),Read() 함수는 CFile과 동일 하다.그리고.>>, 더보기
WM_DROPFILES 메세지 파일드랍 기능으로 사용하는 WM_DROPFILES 메세지가 win7 관리자 권한으로 파일을 실행하면 OnDropFiles() 이 호출 안되는 아주 그지 같은 현상이 발생한다. 참고 - http://blog.naver.com/nugooi/110131187833 비쥬얼스튜디오 옵션의 매니페스트 파일에 권한옵션을 줄 수 있지만,비쥬얼스튜디오 자체를 실행할때 관리자 권한으로 실행을 하면,아예 OnDropFiles()이 먹통이 되어 버린다;;;;;;; 빌드가 된 실행파일도 그냥 실행하면 잘되나,관리자 권한으로 실행을 하면 다시 안되는 현상이 발생한다 더보기