본문 바로가기
반응형

IT/C++25

MFC 에서 dll에 CStringArray를 인자 전달시 Heap Violations 에러 발생 MFC Application 에서 dll 의 함수에 CStringArray& 를 이용하여 변수를 참조로 전달하고, 결과값을 CStringArray 로 받아오는 코딩을 하였다. 즉 dll 에서 CStringArray 에 입력할 값을 할당한 경우였다. 그런데 지역함수를 빠져나갈 때 Heap Violation 이 발생하여 검색을 하니 관련 정보를 찾을 수 있었다. ( http://stackoverflow.com/questions/7309277/heap-violations-when-releasing-a-cstringarray-parameter-from-a-dll-exported-fun) 이것을 해결하려면 즉 CStringArray 같은 MFC Object 를 exe/dll 간에 사용하려면 MFC Extensio.. 2016. 9. 23.
_tcscpy_s 사용시 주의사항 https://msdn.microsoft.com/ko-kr/library/td1esda9.aspx 의 내용을 기반으로 작성합니다TCHAR.H 루틴_UNICODE 및 _MBCS 미정의_MBCS 정의됨_UNICODE 정의됨_tcscpy_sstrcpy_s_mbscpy_swcscpy_s 함수 인자는 다음과 같다errno_t wcscpy_s( wchar_t *strDestination, size_t numberOfElements, const wchar_t *strSource ); strDestination대상 문자열 버퍼의 위치입니다.numberOfElements대상 문자열 버퍼의 크기로, 내로(narrow) 함수와 멀티바이트 함수의 경우 char 단위이고 와이드(wide) 함수의 경우wchar_t 단위입니다.s.. 2016. 9. 10.
32bit application 에서 64bit registry 읽기 레지스트리에서 MachineGuid 값을 읽어오는 루틴을 만들고 있었는데, 값이 읽혀지지 안았다 왜 안읽히는지 에러코드를 찍고, 검색해보다 보니.. MSDN 에 다음과 같이 나온다 A 32-bit application running on WOW64 accesses the 32-bit registry view and a 64-bit application accesses the 64-bit registry view. 해결책은 RegOpenKeyEx 명령어에서 samDesired 인수에 KEY_WOW64_64KEY 를 더하여 주면, WOW64 에서도 32bit application 이 64bit registry key 를 읽을 수 있게 된다 Wow64 인지 확인하는 방법은 BOOL bIsWow64 = FALS.. 2016. 9. 7.
MFC OnDraw WM_PAINT 메시지가 발생했을 때, OnDraw() 가 호출되는 것은 사실이지만, 항상 그런 것은 아니다. 실제로 WM_PAINT에 대응하는 메시지 핸들러는 OnPaint()로 가상 함수가 아니다. OnPaint()의 내부에서 OnDrw()를 호출하는 것이다. OnDraw()가 항상 화면에 뭔가를 그릴 것이라고 기대해서는 안된다. OnDraw()는 파라미터로 전달되는 디바이스 컨텍스트의 표면에 그리기 작업을 하는 것이다. 만약 파라미터로 전달되는 pDC가 프린터의 디바이스 컨텍스트라면 OnDraw()는 프린터에 출력을 하게 된다. - MFC 구조와 원리 (서진택 저) 2016. 4. 30.
setParent 에 대해서 void QWidget::setParent ( QWidget * parent ) QT 의 부모를 설정하는 API 이다. 이 API 를 호출한 QWidget 은 사라지는데, 거기에 대한 설명이 QWidget Class Reference 에 나와 있다. Note: The widget becomes invisible as part of changing its parent, even if it was previously visible. You must call show() to make the widget visible again. 이걸 몰라서 헤매었는데, QT 하시는 분들은 꼭 참고하세요! 2010. 6. 22.
반응형