관리 메뉴

HeBhy, since 1983.

Win32Api에서 x64(64비트) Application을 개발할때의 주의점들 본문

Dev/Dev basics

Win32Api에서 x64(64비트) Application을 개발할때의 주의점들

HeBhy 2010. 3. 8. 17:17
(아래 항목은 되는대로 계속 추가할 예정입니다.)

- 포인터의 전환 (64비트의 기본 개념은 DWORD라고 생각하면 된다)
> UINT to UINT_PTR : OnTimer(UINT nIDEvent) => OnTimer(UINT_PTR nIDEvent)
> LONG to DWORD_PTR : SetWindowLongPtr(hWnd1, GWLP_WNDPROC, (LONG)WndProc1);
=> SetWindowLongPtr(hWnd1, GWLP_WNDPROC, (DWORD_PTR)WndProc1);
> CWnd::OnNcHitTest 의 반환값을 int 에서 LRESULT 로 전환

  • - Linker 옵션의 /MACHINE:I386 을 MachineX64 (/MACHINE:X64) 로 전환


  • - OpenCV 를 64비트로 컴파일 하기 위해 전처리기 정의 부분에 WIN64 선언


  • - 새로운 윈도우 클래스 함수 및 정의를 사용 (좌->우)

  •     GetClassLong       GetClassLongPtr
        GetWindowLong      GetWindowLongPtr
        SetClassLong       SetClassLongPtr
        SetWindowLong      SetWindowLongPtr
        GWL_WNDPROC        GWLP_WNDPROC
        GWL_HINSTANCE      GWLP_HINSTANCE
        GWL_HWNDPARENT     GWLP_HWNDPARENT
        GWL_USERDATA       GWLP_USERDATA
        GWL_ID             GWLP_ID

        GCL_MENUNAME       GCLP_MENUNAME    
        GCL_HBRBACKGROUND  GCLP_HBRBACKGROUND
        GCL_HCURSOR        GCLP_HCURSOR     
        GCL_HICON          GCLP_HICON       
        GCL_HMODULE        GCLP_HMODULE     
        GCL_WNDPROC        GCLP_WNDPROC     
        GCL_HICONSM        GCLP_HICONSM
  • Comments