GSI

파일 저장 다이얼로그

 static char BASED_CODE szFilter[] = "DMXD Files (*.dmxd)|*.dmxd||";
 CFileDialog dlg(FALSE, _T("*.dmxd"), _T("*.dmxd"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter);

 if(dlg.DoModal() == IDOK)
 {
 }

Posted by gsi
:

MFC 에서는 크게 발생하지 않았지만 Win32 쪽으로 코드를 옮기면서
몇가지 컴파일 오류들이 나왔다. 아래의 오류는 #inlcude <string>가 인클루드 되지 않아서
발생하는 문제였다.

#include <string>

c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : 'const std::_Tree<_Traits> &'의 템플릿 인수를 'const std::string'에서 추론할 수 없습니다.
        c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xtree(1170) : 'std::operator`<'' 선언을 참조하십시오.
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : 'const std::_Tree<_Traits> &'의 템플릿 인수를 'const std::string'에서 추론할 수 없습니다.
        c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xtree(1170) : 'std::operator`<'' 선언을 참조하십시오.
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)' : 'const std::vector<_Ty,_Ax> &'의 템플릿 인수를 'const std::string'에서 추론할 수 없습니다.
        c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\vector(915) : 'std::operator`<'' 선언을 참조하십시오.
c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\functional(139) : error C2784: 'bool std::operator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)' : 'const std::vector<_Ty,_Ax> &'의 템플릿 인수를 'const std::string'에서 추론할 수 없습니다.
        c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\vector(915) : 'std::operator`<'' 선언을 참조하십시오.
Posted by gsi
:

웹서버별 마임 추가 방법

Http 프로토콜을 이용한 파일 다운로드시 해당 파일의 사이즈를 아래의
코드를 통해서 읽어 오게 됩니다.

HttpQueryInfo (g_hURL, HTTP_QUERY_CONTENT_LENGTH, szLengthBuf, &dwLengthBufQuery, NULL);

하지만 이때 원하는 용량이 넘어 오지 않고, 1430 인가(?) 하는 특정 바이트 수만
넘어 올때가 있습니다.

물론 이때 오류 처리 하는 코드가 따로 있는걸로 알고 있구요.
그 오류는 404 오류 즉, 해당 파일을 찾을 수 없다는 걸로 나오게 됩니다.

문제의 해답은..
이미 알려져 있고 규정되어 있는 확장자만 다운로드가 가능하다는 건데요.
IIS에서 확장해서 별도의 확장자를 추가할 수 있습니다.
  HTTP 헤더 > MIME 형식 > 원하는 확장자 추가...

자세한 방법은 아래의 블로그 내용을 참조 하시면 됩니다.
주소 : http://cafe.naver.com/okwinc.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=22
Posted by gsi
:

기존의 .NET의 책을 보다 보면 지금의 2008이 얼마나 자동화를 많이 해주는지를
알 수 있다.

하지만 내면에 감추어진 여러가지 컴파일의 특성과 각종 기능들에 대해서
알지 못하고 가는 오류를 범하기도 하는거 같다.

사실 개발자로서 툴에 의존적이 되다 보니 cmd 창에서 이루어 지는 컴파일이나
각종 번거로운 작업들이 매번 귀찮게만 느껴지게 된다.

하지만 이런 부분을 알고나면 다 많은 것을 보게 되는 시각이 생기게 되는거 같다...

역시 공부는 하면 할 수록 더 어려워 지는거 같다는 생각이 많이 든다.
그만큼 많이 알아 간다는 뜻이기도 하겠지만. 말이다.

나를 위해서.. 화이팅..
Posted by gsi
:

마우스가 해당 View의 영역 밖으로 나갈때 처리 방법.

해당 View의 영역에 커서가 위치할 때랑 커서가 밖으로 나갔을때 다르게 처리 하고 싶을때가 발생한다. 이때는 SetCursor를 이용하면 된다.

즉, 해당 어플리케이션의 MainFrame 에서 SetCursor 부분에서 해당 View의 클래스 포인터의 값을 비교해서 처리 하면 된다.

코드는 아래와 같다.
BOOL CMainFrame::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
 if( pWnd == g_PixelMapView )
 {
 }
 else // 해당 포인터가 다를 경우, 즉 다른 윈도우일 경우...
 {
  if( g_PixelMapView )
   g_PixelMapView->OutCursorDCxRop();
 }
 return CFrameWnd::OnSetCursor(pWnd, nHitTest, message);
}

이때 한가지 문제점은 있다. 마우스가 갑자가 해당 메인 프레임 밖으로 이동하게 되면
이 함수는 호출 되지 않는다. 그정도를 감안한다면 이 코드도 괜찮을듯 하다.
Posted by gsi
: