카테고리 없음

간단한 Win32 SDK 윈도우 프로그램 만들기

오감도축 2024. 7. 20. 00:31
.

간단한 Win32 SDK 윈도우 프로그램을 만드는 방법을 안내해 드리겠습니다. 이 예제는 기본적인 "Hello, World!" 윈도우 애플리케이션을 만드는 방법을 다룹니다.

1. 개발 환경 설정
먼저, Win32 애플리케이션을 개발하려면 Visual Studio 같은 IDE를 사용하는 것이 좋습니다. Visual Studio는 Win32 SDK를 포함하고 있으며, 개발에 필요한 모든 도구를 제공합니다.

2. 새로운 Win32 프로젝트 만들기
Visual Studio를 열고, 새 프로젝트를 선택합니다.
빈 프로젝트를 선택하고, Win32 프로젝트를 선택합니다.
프로젝트 이름을 입력하고, 만들기를 클릭합니다.
3. Win32 애플리케이션 코드 작성
프로젝트가 생성되면, 솔루션 탐색기에서 소스 파일 폴더를 마우스 오른쪽 버튼으로 클릭하고, 새 항목 추가를 선택합니다. C++ 파일을 선택하고 파일 이름을 입력한 후, 추가를 클릭합니다. 예를 들어 main.cpp라고 이름을 지을 수 있습니다.

다음은 기본적인 Win32 애플리케이션의 코드입니다:

cpp
코드 복사
#include <windows.h>

// 전역 변수
HINSTANCE hInst;

// 전방 선언
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

// 프로그램의 진입점
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    // 윈도우 클래스 등록
    WNDCLASSEX wcex;
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc = WndProc;
    wcex.cbClsExtra = 0;
    wcex.cbWndExtra = 0;
    wcex.hInstance = hInstance;
    wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wcex.lpszMenuName = NULL;
    wcex.lpszClassName = "SampleWindowClass";
    wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

    if (!RegisterClassEx(&wcex))
    {
        MessageBox(NULL, "윈도우 클래스 등록 실패", "오류", MB_OK);
        return 1;
    }

    // 윈도우 생성
    HWND hWnd = CreateWindow(
        "SampleWindowClass", "Hello, Win32 SDK!",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
        NULL, NULL, hInstance, NULL
    );

    if (!hWnd)
    {
        MessageBox(NULL, "윈도우 생성 실패", "오류", MB_OK);
        return 1;
    }

    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);

    // 메시지 루프
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return (int)msg.wParam;
}

// 윈도우 프로시저
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);
            // 텍스트 출력
            TextOut(hdc, 5, 5, "Hello, Win32 SDK!", 17);
            EndPaint(hWnd, &ps);
        }
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
4. 빌드 및 실행
코드를 작성한 후, Visual Studio에서 빌드 메뉴를 클릭하고 솔루션 빌드를 선택하여 프로그램을 컴파일합니다. 빌드가 성공하면 디버깅 메뉴에서 디버깅 시작을 클릭하여 애플리케이션을 실행할 수 있습니다.

이 코드는 기본적인 윈도우 애플리케이션을 생성하며, 윈도우가 나타나고 "Hello, Win32 SDK!"라는 텍스트가 표시됩니다. 추가적으로 다양한 Win32 API 기능을 활용하여 프로그램을 확장할 수 있습니다.