Помогите С Переводами Типов

Тема в разделе "C/C++/C#", создана пользователем Triplecool, 9 янв 2012.

  1. Triplecool

    Triplecool Гость

    У меня есть четыре hEdit'а. я ввожу значения и складываю первый едит со вторым и ввожу значения в четвёртый едит,он у меня выдаёт ошибку.


    Полный код:
    Код (C++):
    #include <windows.h>

    #define BUTTON_1 1

    HINSTANCE hinst;



    LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM);

    int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
    {
    HWND hwnd;
    MSG msg;
    WNDCLASS wc;

    hinst=hinstance;

    wc.cbClsExtra=0;
    wc.cbWndExtra=0;
    wc.style=0;
    wc.lpszMenuName=NULL;
    wc.hCursor=LoadCursor(NULL,IDC_ARROW);
    wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);
    wc.hInstance=hinstance;
    wc.lpfnWndProc=MainWndProc;
    wc.hbrBackground=(HBRUSH)(1+COLOR_BTNFACE);
    wc.lpszClassName=L"MyWinClass";

    if (!RegisterClass(&wc)) return FALSE;

    hwnd=CreateWindow(L"MyWinClass",L"Titre",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,265,210,NULL,NULL,hinstance
    ,NULL);

    if (!hwnd) return FALSE;

    ShowWindow(hwnd,nCmdShow);
    UpdateWindow(hwnd);

    while(GetMessage(&msg,NULL,0,0))
    {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }

    return msg.wParam;
    }


    LRESULT CALLBACK MainWndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
    {
    static HWND hEdit1,hEdit2, hEdit3,hButton,hMemo;
    static HFONT hFont;
    static char a[6],b[6],c[6],d;
    static float f;

    switch(uMsg)
    {
    case WM_CREATE:
    hEdit1=CreateWindow(L"edit",L"a",WS_CHILD|WS_VISIBLE|WS_BORDER,10,30,50,20,hwnd,NULL,hinst,NULL);
    hEdit2=CreateWindow(L"edit",L"b",WS_CHILD|WS_VISIBLE|WS_BORDER,70,30,50,20,hwnd,NULL,hinst,NULL);
    hEdit3=CreateWindow(L"edit",L"c",WS_CHILD|WS_VISIBLE|WS_BORDER,130,30,50,20,hwnd,NULL,hinst,NULL);
    hButton=CreateWindow(L"button",L"OK",WS_CHILD|WS_VISIBLE,190,30,50,20,hwnd,(HMENU)BUTTON_1,hinst,NULL);
    hMemo=CreateWindow(L"edit",L"",WS_CHILD|WS_VISIBLE|WS_BORDER|ES_MULTILINE|ES_WANTRETURN|WM_VSCROLL,10,60,2
    30,100,hwnd,NULL,hinst,NULL);
    hFont=(HFONT)GetStockObject(12);
    SendMessage(hButton,WM_SETFONT,(UINT)hFont,TRUE);
    return 0;

    case WM_COMMAND:
    if (LOWORD(wParam)==BUTTON_1)
    {
    GetWindowText(hEdit1,reinterpret_cast<LPWSTR>(a),20);
    GetWindowText(hEdit1,reinterpret_cast<LPWSTR>(b),20);
    GetWindowText(hEdit1,reinterpret_cast<LPWSTR>(c),20);
    f=static_cast<float>(reinterpret_cast<char>(a))+static_cast<float>(reinterpret_cast<char>(b));
    d=static_cast<char>(f);
    SetWindowText(hMemo,reinterpret_cast<LPWSTR>(d));
    }
    return 0;

    case WM_DESTROY:
    PostQuitMessage(0);
    return 0;

    case WM_PAINT :
    PAINTSTRUCT ps;
    HDC hdc;
    hdc=BeginPaint(hwnd, &ps);
    SetBkMode(hdc, TRANSPARENT);
    TextOut(hdc, 10, 10, L"Kvadretnoe ourav", lstrlen(L"Kvadretnoe ourav"));
    EndPaint(hwnd, &ps);
    return 0;

    default:
    return DefWindowProc(hwnd,uMsg,wParam,lParam);

    }
    }


    Код с ошибкой
    Код (C++):
           
    if (LOWORD(wParam)==BUTTON_1)
    {
    GetWindowText(hEdit1,reinterpret_cast<LPWSTR>(a),20);
    GetWindowText(hEdit1,reinterpret_cast<LPWSTR>(b),20);
    GetWindowText(hEdit1,reinterpret_cast<LPWSTR>(c),20);
    f=static_cast<float>(reinterpret_cast<char>(a))+static_cast<float>(reinterpret_cast<char>(b));
    d=static_cast<char>(f);
    SetWindowText(hMemo,reinterpret_cast<LPWSTR>(d));
    }
    Мне кажеться тут что-то с типами
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    А зачем ты делаешь reinterpret_cast<LPWSTR>(a) ?
    Массивы: static char a[6],b[6],c[6],d; имеют размер 6 байт (включая последний ноль), а ты даешь возможность запихать туда 20.
    Ошибка при компиляции или при запуске? Если при компиляции то какая?
     
Загрузка...
Похожие Темы - Помогите Переводами Типов
  1. limbra
    Ответов:
    3
    Просмотров:
    44
  2. NylevoiChelovek
    Ответов:
    4
    Просмотров:
    97
  3. Ruska132
    Ответов:
    34
    Просмотров:
    262
  4. gURaBA_N
    Ответов:
    7
    Просмотров:
    145
  5. uxbmw3w
    Ответов:
    0
    Просмотров:
    61

Поделиться этой страницей