프로그래밍/버그 & 에러 리포팅 썸네일형 리스트형 IWebBrowser2 사용시 화면 갱신이 잘 되지 않는 경우 IWebBrowser2 사용 시 navigate 후 화면이 이전 화면 또는 흰색으로 표시되는 경우가 있다. 물론 해당 url은 이미 로딩이 완료된 상태이고 윈도우를 리사이즈하거나 액션을 통해 갱신을 하는 경우 제대로 표시가 된다. 위와 같은 이슈의 근본적인 원인은 찾아내지 못했다. 강제로 painting 처리를 해주고 메시지를 날려주고 별 짓을 다 했지만 정상처리가 되지 않았고 어렴풋이 원인으로 보이는 부분은 해당 url의 캐시가 남아 있는 경우 즉 처음 로딩하는 페이지가 아닌 경우 자주 발생했다. host window의 OnPaint 시점과 OnDocumentComplate 시점의 차이로 간주하고 OnDocumentComplete에서 강제로 UpdateWindow() 함수를 호출 하는 것으로 이슈는 마.. 더보기 atlcom.h에서 ClassesAllowedInStream rgclsidAllowed; 에러가 나는 경우 (updated) 이전 포스팅 중에 atl 관련 보안업데이트로 인해 에러가 나는 경우에 대해서 Dynamic Link to ATL로 변경하여 처리한 글이 있다. (여기) 1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h(431) : error C2146: syntax error : missing ';' before identifier 'rgclsidAllowed' 1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h(431) : error C4430: missing type specifier - int assumed. Note: C++ does not suppor.. 더보기 atlcom.h에서 ClassesAllowedInStream rgclsidAllowed; 에러가 나는 경우 1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h(431) : error C2146: syntax error : missing ';' before identifier 'rgclsidAllowed' 1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.h(431) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>c:\program files\microsoft visual studio 9.0\vc\atlmfc\include\atlcom.. 더보기 유니코드 빌드시 툴팁 윈도우 생성되지 않는 버그 Unicode에서 win32로 구현할 경우 생성되지 않는 문제 typedef struct tagTOOLINFOW { UINT cbSize; UINT uFlags; HWND hwnd; UINT_PTR uId; RECT rect; HINSTANCE hinst; LPWSTR lpszText; #if (_WIN32_IE >= 0x0300) LPARAM lParam; #endif #if (_WIN32_WINNT >= 0x0501) void *lpReserved; #endif } TTTOOLINFOW, NEAR *PTOOLINFOW, *LPTTTOOLINFOW; 구조체에서 WIN32_WINNT가 기본값이 0x0501로 설정되어 있음 VS버그로 추정되나 Stdafx.h의 WIN32_WINNT값을 수정하여 컴파일시 동.. 더보기 #pragam warning 사용법 #pragma warning(push) #pragma warning(disable : 4192) #pragma warning(disable : 4278) #import #import #pragma warning(pop) push, pop을 설정하여 해당 파일에만 제거하여 전체 프로젝트에 영향을 주지 않도록 한다. 더보기 ConvertBSTRToString 링크 에러 발생시 원인 : SDK 설치시 제공된 코드에 문제가 있음. 해결 : comdef.h 수정( 검색하면 여러개 검색됨. ) # pragma comment(lib, "comsupp.lib") 부분을 아래와 같이 수정 ------------------------------------------------------------ #ifdef _NATIVE_WCHAR_T_DEFINED # ifdef _DEBUG # pragma comment(lib, "comsuppwd.lib") # else # pragma comment(lib, "comsuppw.lib") # endif #else # ifdef _DEBUG # pragma comment(lib, "comsuppd.lib") # else # pragma comment(li.. 더보기 Gdiplus 객체를 new로 생성할 경우 에러 처리 MFC에서 Gdiplus를 사용할때 Gdiplus object를 new로 생성할 경우 C2660 에러가 발생함 이는 디버그시 전처리기에서 new 연산자를 재정의 해서 발생되는 문제입니다. 그러므로 전처리기의 재정의를 삭제할 경우 에러가 발생하지 않는다. #ifdef _DEBUG #define new DEBUG_NEW #endif 위의 정의문을 삭제하거나 또는 헤더파일을 수정하여 추가된 파라미터를 무시하도록 재정의 하는 방법입니다. //// Ensure that GdiPlus header files work properly with MFC DEBUG_NEW and STL header files. #define iterator _iterator #ifdef _DEBUG namespace Gdiplus { n.. 더보기 이전 1 다음