Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

vistaでvs2010

概要

vistaで、visual studio 2010やってみた。
コマンドプロンプトで、C++をコンパイルしてみた。

コマンドプロンプトで、exeをコンパイル。

cl sampleA.cpp kernel32.lib user32.lib gdi32.lib

サンプルコード

sampleA.h

#define MENU_NAME       NULL
#define WIN_W           500
#define WIN_H           180
#define WIN_X           100
#define WIN_Y           50

sampleA.cpp

#include <windows.h>
#include "sampleA.h"

#define CLASS_NAME      "Sample_A1Class"
#define WIN_TITLE       "Sample_A1"
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
BOOL InitApplication(HINSTANCE);
BOOL InitInstance(HINSTANCE, int);
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    MSG msg;
    if (!hPrevInstance)
    {
        if (!InitApplication(hInstance))
            return FALSE;
    }
    if (!InitInstance(hInstance, nCmdShow))
    {
        return FALSE;
    }
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
BOOL InitApplication(HINSTANCE hInstance) {
    WNDCLASS wc;
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = (WNDPROC) WndProc;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hInstance = hInstance;
    wc.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
    wc.lpszMenuName = MENU_NAME;
    wc.lpszClassName = CLASS_NAME;
    return(RegisterClass(&wc));
}
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) {
    HWND hWnd;
    hWnd = CreateWindow(CLASS_NAME, WIN_TITLE, WS_OVERLAPPEDWINDOW, WIN_X, WIN_Y, WIN_W, WIN_H, NULL, NULL, hInstance, NULL);
    if (!hWnd)
        return FALSE;
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);
    return TRUE;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    HDC hDC;
    PAINTSTRUCT ps;
    int ret;
    switch(uMsg)
    {
    case WM_PAINT:
        BeginPaint(hWnd, &ps);
        hDC = ps.hdc;
        TextOut(hDC, 10, 10, "SDK -> MFC", 10);
        EndPaint(hWnd, &ps);
    break;
    case WM_LBUTTONDOWN:
        hDC = GetDC(hWnd);
        TextOut(hDC, LOWORD(lParam), HIWORD(lParam), "Hello World", 11);
        ReleaseDC(hWnd, hDC);
    break;
    case WM_CLOSE:
        ret = MessageBox(hWnd, "プログラムを終了しますか", "確認", MB_YESNO | MB_ICONQUESTION);
        if (ret == IDYES)
            DestroyWindow(hWnd);
    break;
    case WM_DESTROY:
        PostQuitMessage(0);
    break;
    default:
        return(DefWindowProc(hWnd, uMsg, wParam, lParam));
    }
    return 0;
}



以上。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away