본문 바로가기

MS/MFC

Manually set dropdown list for combobox on MFC [VC++, MFC] How to set ComboBox DropDown HeightThis is a good example of how messy working with MFC can be. Something apparently so easy could take a lot of time to figure out, so here you can find two easy ways out: 1) Designer - through the designer by default you can just resize the ComboBox width. If you want to resize the Drop Down List height you need to click on the dropdown arrow on the .. 더보기
기존의 32bit코드를 64bit로 변경 할 때 나같은 경우는 x64 configuration으로 변경 후 빌드를 해보니 nafxcw.lib파일을 찾을 수 없다고 나왔다. 그래서 구글링을 하다가 아래와 같은 링크를 발견 하고http://bluemallow.tistory.com/4 Microsoft visual studio 2008 cd를 넣어서 x64 Compilers ans Tool을 설치 하고 다시 빌드를 하니 빌드는 성공 하였다. 그러나 32bit 변수와 64bit 변수의 상관관계에 대한 문제는 있을 것이다. 참고: http://blog.naver.com/PostView.nhn?blogId=zbaekhk&logNo=187182129 더보기
SHANDLE_PTR 에러 문제 본론부터 설명 하겠다. 문제의 발단은 DXSDK 8.0의 파일 중에 basetsd.h파일과 Microsoft SDKs/Windows/v7.0/Include에 있는 basetsd.h파일과 동일하기 때문이다.. 엄밀히 말하자면 #ifndef _BASETSD_H 로 두개의 파일 전부다 define이 동일 하다 -_- ms가 잘못한 것인가.. dxsdk만든 ms가 잘못한 것인가 아무튼 ms 이놈들이 뭔가 버그를 심어 놓은것이다. 해결 방법을 구글링 해보면 dxsdk를 9.0으로 바꾸든지 하라는데 난 꼭 8.0으로 써야한다. 8.0으로 되어있는 걸 언제 전부다 9.0으로 리팩토링 할 것인가?? 이런 무의미한짓은 하고 싶지 않다. 고민한 결과 아래와 같이 하면 된다. #ifndef _BASETSD_H 로 되어 있는.. 더보기
r6034 attempt to load the C runtime library incorrectly 컴파일 다하고 debug 모드에서 실행시킬려고 하니까 아래 R6034 에러(아래그림)가 떴다. (그림은 인터넷에서 가져온 것이지만 에러내용은 동일) 한참 구글링해도 manifest가 어쩌고 저쩌고 하는 내용이었고, 나는 이미 vs 2005에서 컴파일한 터라 더 이상 어떻게 할 게 없었다. 막막한 마음에 혹시나 해서, 컴파일시 warning을 보니 MSVCRTD.lib(cinitexe.obj) : warning LNK4098: defaultlib "msvcrt.lib" conflicts with use of other libs; use /NODEFAULTLIB:library 라는 warning 이 맨 마지막 줄에 있었다.... 사실 이 warning은 자주 나타나는 거라서 그냥 warning 수준에서 무시.. 더보기
GDI+ 설정방법, 이미지출력, 투명화, 더블버퍼링, 이미지회전, jpg생성, 글자 출력, GDI와 데이터형 변환 출처 : http://blog.naver.com/najira00/60058229279 여지껏 GDI를 사용하다가 vc++ 2005로 갈아타게 되는 김에 GDI+를 한번 공부해보았습니다. GDI+는 GDI에 업그레이드 버젼이며, 자세한 정보및 강좌는 제 블로그 Library란에 보시면 강좌가 링크되어있습니다. 저는 잘 못느끼겠지만..속도는 GDI보다 느리다고 하더군요. 그렇지만 한번 GDI+로 코딩하면서 느낀것은 너무너무 간편하다는 점이였습니다. 코딩이 달랑 몇줄에 끝나기도 하고... 별다른 코딩없이 JPG등의 파일을 생성하기도 하고 제어하기도 한다는점이 매력적이였습니다. 왠만한 함수들은 이미 구현이 되어있더군요. 어쨌든 gdi+를 처음 해보시려고 하는 분들에게 작은 도움이 되지 않을까 해서 이렇게 글을 .. 더보기
GDI+ Double buffering void CDoubleBufferingView::OnPaint() { CPaintDC dc(this); CRect rlClientRect; GetClientRect(&rlClientRect); Rect rclClient(rlClientRect.left,rlClientRect.top,rlClientRect.Width(),rlClientRect.Height()); CDC MemDC; MemDC.CreateCompatibleDC(&dc); CBitmap memBitmap; memBitmap.CreateCompatibleBitmap(&dc, rlClientRect.Width(),rlClientRect.Height()); CBitmap *pOldBitmap = MemDC.SelectObject(&memBitmap.. 더보기
mfcs80d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined 참고 : http://alisa2304.tistory.com/109 일단 본인은 win32 dll으로 project를 만들어서 사용 하다가 mfc 관련 클래스들을 사용 할수 밖에 없는 어쩔수 없는 상황인지라 MFC관련 코드들 까지 dll로 엮어서 사용 해야 했다. 그래서 일단 Project 속성 -> General에서 Use of MFC의 설정을 Use MFC in a Shared DLL로 설정을 했으나 위 제목과 같은 링크 에러가 똭.. 그래서 검색을 해보니 [프로젝트 속성->링커->명령줄에서 /FORCE:MULTIPLE 추가] 이렇게 하니깐 warning은 겁나게 떳지만 일단 컴파일은 성공 하였다. 추후에 이dll을 사용 할 때 어떤문제가 나올지 모르겠지만 일단 패스 하도록 함. 더보기
CListCtrl 에서 깜빡임 없애기 & 실시간 갱신 MFC의 CListCtrl 을 가끔 사용하다 보면 전체 데이터를 업데이트 할 때 깜빡임 현상이 꼭 발생하곤 한다. 이를 위해 많은 방법을 동원한다. 일반적인 SetItem 을 하기 전에 Item 을 확인하고 같으면 그냥 넘기는 등의 나름 꼼수를 동원했었다. 이번에도 또 그런현상이 발생하길래... 한번 뒤져 보았다. 이런.... 구글링보다 더 멋진 MSDN에서 나왔다. comctl32.dll 의 Version 6.00 이상 부터 지원하는 기능이다. LVS_EX_DOUBLEBUFFERVersion 6.00. Paints via double-buffering, which reduces flicker. This extended style also enables alpha-blended marquee select.. 더보기
비주얼 스튜디오, 디버깅 브레이크 포인트 중단점이 적중되지 않습니다... 브레이크 포인트 (중단점) 걸고 디버깅 할려 할 때 빨간 동그라미가 투명해지면서 '중단점이 현재 적중되지 않습니다. 소스 코드가 원래 버전과 다릅니다' 되는 경우가 종종 생깁니다. = 방법 ================================== 해당 소스파일을 '저장 고급옵션' 누르시고 유니코드 65001 로 저장 해주세요. 옵션에서 소스코드가 달라고 그냥 디버깅 하기 체크도 되지만 그건 좀 찝찝하죠잉. 출처 : http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_Lecture&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=last_comment&desc=desc&no=241 더보기
ActiveX 관리자 권한으로 상승하여 사용 하기 여러곳을 돌아 다녀보아도 Visual C++ 6.0 으로 ActiveX 권한 상승문제는 정확하게 써놓은곳이 잘 없다.거의 다 ATL 위주의 설명이 많아 블로그에 포스팅한다.권한 상승 하는 방법은 크게 두가지로 분류가 된다.자신의 객체를 권한 상승 시켜서 필요한 메서드만 관리자 권한으로 수행하게 하는 일시적인 권한 상승방법이 있고Internet Explorer 자체를 관리자 권한으로 상승 시키는 방법이 있다.여기서 포스팅하는 방법은 Internet Explorer 자체를 관리자 권한으로 상승시키는 방법이다.1. 권한상승에 관한 코드 준비필자는 stdafx.h 파일에 아래 코드를 선언하였다.?123456789101112131415161718"2">// 권한상승typedef struct _TOKEN_ELEVA.. 더보기