1.2Mb 나 되는 데이터를 읽어들였다.
1296 x 964 정도 되는 이미지 파일인데 처리를 위해서는 2차원 배열이 필요 했다.

 int cols=1296, rows=964;
 unsigned char *p  = new unsigned char [rows * cols];
 unsigned char (*pdata)[1296] = (unsigned char (*)[1296])p;   // 여기서 [] 안의 값은 1차 배열의 크기를 뜻한다.

즉..  처리 후에는 pdata[964][1296]  가 생기는 것이다.  ^^

 FILE *fp;
 fp = fopen("1.RAW", "rb");
 fread(p, 1, cols * rows, fp);



참고 자료 : http://blog.naver.com/yonguk6726/30084714204
Posted by +깡통+





threed.ocx 에서 발생했다.  헉 수많은 프로젝트가 이걸 썼는데 갑자기 실행이 안된다 ㅠㅠ
가끔 어떤 프로그램을 설치했을때.. OCX 버전 충돌이나
혹은 나처럼 디어셈블리어를 설치했더니 겪는 문제이다. ( 추측 )

문제 해결방법은..  아래 사이트에서 디자인 타임 라이센스를 변경해주는 패치를 해주면 된다.
http://support.microsoft.com/kb/195353/ko


기술 자료: 195353 - 마지막 검토: 2005년 3월 7일 월요일 - 수정: 3.3

FILE: 중지된 컨트롤에 대한 라이센스 VBUSC.EXE가 제공합니다.

모두 확대 | 모두 축소

요약
VBUSC.EXE 이전 버전의 Visual Basic 선적된 있지만 더 이상 지원되지 않으므로 및 현재 버전과 단종되지 ActiveX 컨트롤에...

VBUSC.EXE 이전 버전의 Visual Basic 선적된 있지만 더 이상 지원되지 않으므로 및 현재 버전과 단종되지 ActiveX 컨트롤에 대한 디자인 타임 라이센스 설치합니다 파일입니다.

추가 정보
Microsoft 다운로드 센터에서 다음 파일을 다운로드 할 수 있습니다: VBUSC.exe (http://download.microsoft.c...

Microsoft 다운로드 센터에서 다음 파일을 다운로드 할 수 있습니다:
VBUSC.exe (http://download.microsoft.com/download/vb60pro/install/2/win98/en-us/vbusc.exe)
2000년 8월 15일 릴리스 날짜:

Microsoft 지원 파일을 다운로드하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
119591  (http://support.microsoft.com/kb/119591/EN-US/ ) 온라인 서비스로부터 Microsoft 지원 파일 구하는 방법
Microsoft는 이 파일에 대한 바이러스를 검색합니다. Microsoft는 파일을 게시한 날짜에 사용할 수 있었던 최신 바이러스 검색 소프트웨어가 사용됩니다. 해당 파일을 무단으로 변경할 수 없는 보안이 향상된 서버에 보관됩니다.
    FileName               Size
   ---------------------------------------------------------
   VBUSC.EXE                88k
				
다음 컨트롤은 Microsoft Visual Basic에서 더 이상 지원되지 않습니다:
ActiveX Control Name                Filename
------------------------------------------------
Desaware Animated Button Control    ANIBTN32.OCX
Microhelp Gauge Control             GAUGE32.OCX
Pinnacle-BPS Graph Control          GRAPH32.EXE
Microsoft Grid Control              GRID32.OCX
Microhelp Key State Control         KEYSTA32.OCX
Microsoft Outline Control           MSOUTL32.OCX
Outrider SpinButton Control         SPIN32.OCX
Sheridan 3D Controls                THREED32.OCX
				
있는 ActiveX 컨트롤 위에 나열된 더 이상 지원되지 않으며, 있지만 기존 프로젝트를 업그레이드할 때 이전 버전과의 호환성을 위해 전문가 및 엔터프라이즈 버전 중 Visual Basic 배를.

이러한 컨트롤은 학습 Edition의 Microsoft Visual Basic 함께 제공되는 수행할지 않습니다.

전문가 및 엔터프라이즈 버전 컨트롤 설치 CD 다음 위치에 있는:
Microsoft Visual Basic Edition        Location
----------------------------------------------------------------------
Professional 6.0                      \Common\Tools\VB\Controls
Enterprise 6.0                        \Common\Tools\VB\Controls
Visual Studio Professional 6.0        \Common\Tools\VB\Controls (CD2)
Visual Studio Enterprise 6.0          \Common\Tools\VB\Controls (CD3)
				
이러한 디렉터리의 각 README.TXT 디자인 타임 사용할 컨트롤을 설치하는 방법에 대한 지침이 포함되어 있습니다.

참고: Visual Basic의 이전 버전에서 개발한 프로젝트를 업그레이드하려면 학습 Edition 사용 문제가 이러한 컨트롤에 대한 라이센스 발생할 수 있습니다.

해당 VBUSC.EXE VBA 컴퓨터에서 검색된 경우 위에 나열된 컨트롤에 대한 디자인 타임 라이센스를 설치합니다.








Posted by +깡통+
※ WM_SYSCOMMAND → WM_CLOSE → WM_DESTROY → WM_QUIT




1. WM_CLOSE
   - 윈도우가 닫히기 전에 메시지가 전달 된다.
   - 아직 윈도우가 파괴된 것은 아니므로 윈도우가 파괴되는 것을 중간에 제어 할 수 있다.
   - 윈도우의 “닫기” 를 누르거나, 키보드의 “Alt + F4”를 눌렀을 경우 발생



   - WM_CLOSE 의 핸들러(OnClose) 에서 추가적인 제어를 하지 않는다면 메시지는
      DefWindowsProc 로 보내진다.
   - CDialog::OnClose() 는 내부적으로 DestroyWindow() 함수를 호출 한다.
   - DestroyWindow() 함수는 내부적으로 WM_DESTROY 메시지를 발생 시킨다.


2. DestroyWindow()
   - CWnd내부에 있는 윈도우를 destroy 한다.
   - 윈도우를 해제하고 입력 포커스를 제거하기 위한 적절한 message를 윈도에게 보낸다.
   - 윈도우의 메뉴 제거 
   - application queue를 비운다.
   - timer를 제거
   - Clipboard의 소유주 제거
   - Clipboard-viewer chain을 끊는다. ( CWnd가 viewer chain의 맨 위에 있을 경우 )
   - WM_DESTROY(OnDestroy)와 WM_NCDESTROY(OnNcDestroy) 메시지를 윈도우 에게 보낸다.
     하지만 아직 CWnd 객체는 destroy하지 않는다.


3. WM_DESTROY
   - Framework이 CWnd에게 현재 CWnd가 소멸되고 있는 중이라고 알려 주기 위하여 호출 
   - 화면에 윈도우를 숨긴 후 메시지 발생, 아직 윈도우 자체는 파괴되지 않았다
   - DestroyWindows() 함수에서 발생 시킨다.
   - WM_CREATE 에 반대되는 동작을 수행 한다.
   - 차일드 윈도우가 있다면 이 메시지를 차례대로 전달 한다.
   - 메인 윈도우에서 PostQuitMessage() 함수를 반드시 호출하여 프로세스의 메시지 루프
     를 종료시켜야 한다. 그렇지 않다면 윈도우만 파괴되고 메시지 루프는 계속 실행중인
     상태가 되므로 프로세스가 종료되지 않는다.


4. WM_NCDESTROY
   - Client 영역이 아닌 영역이 Destroy 될 때 Framework 에 의하여 불려짐.
   - 윈도우가 소멸될 때 마지막으로 호출되는 메시지
   - 핸들러를 재정의 한다면 기본 호출 함수를 가장 위에서 해주자.

  
5. PostNcDestroy()
   - 윈도우가 소멸된 후 OnNcDestroy() 함수에 의해 불려지는 함수
   - 사용자들이 상속받아 만든 클래스의 정리를 위한 코드를 넣음.


6. View가 닫혀질 때 호출되는 핸들러 순서
BOOL CAniView::DestroyWindow()
{
 
// TODO: Add your specialized code here and/or call the base class
// 윈도우가 안보여 지기전에 해야 할 작업 처리
 
 return CView::DestroyWindow();
 
}
 
void CAniView::OnDestroy()
{
 
  CView::OnDestroy();
 
  // TODO: Add your message handler code here
 
}
 
void CAniView::PostNcDestroy()
{
 
  // TODO: Add your specialized code here and/or call the base class
 
  CView::PostNcDestroy();
 
}


7. WM_QUIT
   - 응용프로그램을 종료 하라는 메시지
   - PostQuitMessage() 가 발생 시키는 메시지
   - GetMessage() 함수가 0 을 리턴하도록 함으로써 메시지 루프를 종료
   - PeekMessage() 함수는 따로 WM_QUIT 메시지를 점검해야 한다.



자료 출처 : http://six605.tistory.com/257

Posted by +깡통+