분류 전체보기
-
MVVM 모델에서 뷰 상호간에 정보 주고 받기WPF 2018. 3. 14. 15:41
A뷰에서 특정 이벤트 발생 시 B뷰의 DataGrid의 내용을 리프레시 하는 것을 구현해야 한다. 1) NuGet에서 MvvmLight를 받아서 설치한다 - using에 추가한다(보낼 뷰, 받을 뷰) using GalaSoft.MvvmLight.Messaging; 2) 상호 교환할 두 개의 뷰 끼리 공유하는 메세지 클래스를 생성한다. using GalaSoft.MvvmLight.Messaging; public class StringMessage : MessageBase { public string Message { get; set; } public StringMessage() { Sender = "StringMessage"; } } 4) 메세지를 받을 경우 실행 될 롤백 함수를 등록한다. Messenge..
-
프로그램 오류 시 덤프 뜨는 방법(procdump)MFC 2018. 3. 14. 15:09
소스코드에 자동으로 덤프를 뜨게 하는 방법에 대해서 쓴 적이 있다. 그 코드가 콘솔 프로그램에서는 잘 동작하는데, 대화상자 기반 프로그램에서는 덤프가 생성되지 않았다. 여러가지 방법을 찾던 중, 결국 procdump 라는 프로그램으로 오류 발생 시 수동으로 직접 덤프를 생성시키는 방법을 선택했다. 1) 일단 아래 사이트에서 procdump를 다운 받는다. https://docs.microsoft.com/ko-kr/sysinternals/downloads/procdump 2) procdump 를 먼저 시작한다. procdump -e -ma -w xxx.exe 명령어를 실행한다. 3) xxx.exe 프로세스를 실행한다. 4) 생성된 덤프로 오류 상황을 분석한다.
-
문자열 인코딩 변환 매크로 주의사항 (W2A, A2W)MFC 2018. 1. 29. 14:31
유니코드와 멀티바이트 문자열을 상호변환하는데 있어 가장 간편한 것이, 제공되는 함수를 사용하는 것일테다. USES_CONVERSION; 만 사용하면, 여러 변환 매크로들을 사용할 수 있기에 종종 사용했었다. A2W, W2A 같은 매크로들이다. W : 유니코드A : ANSI 문자열 헌데, W2A는 변환과정에서 내부스택을 사용하기 때문에, 반복문 안에서 사용하면 스택오버플로우가 발생한다. 그래서 찾은게 CW2A, CA2W 등 이다. 이는 ATL7.0에 도입된 클래스와 매크로로, 클래스 내부에 128만큼 버퍼를 갖고있고, 이를 넘어서는 경우 힙에 메모리를 할당한다고 하며, 루프 안에서도 사용가능하며 스택오버플로우되지 않는다고 한다. 필자는 for문안에서 다량의 W2A_EX를 사용했고, 또한 반복 횟수가 많아서..
-