Ошибка при создании оконного приложения на winapi

LRESULT WndProc(HWND hwnd, UINT msg, WPARAM wparm, LPARAM lparm)
{
    if(message == WM_DESTROY)
    {
        PostQuitMessage(0);
    }
    else
    {
        DefWindowProcA(hwnd, msg, wparm, lparm);
    }

}

int main()
{
    WNDCLASSA wcl;
    memset(&wcl, 0, sizeof(wcl));
    wcl.lpszClassName = "ClassName";
    wcl.lpfnWndProc = WndProc;

}

Когда я написал такой код в Visual Studio у меня возникла ошибка

a value of type "LRESULT(*)(HWND hwnd, UINT msg, WPARAM wparm, LPARAM lparm)" cannot be assigned to an entity of type "WNDPROC"

Но когда я изменил режим с x86 на x64 то ошибка пропала. Что мне нужно сделать что-бы работало и на x86 и на x64?


Ответы (1 шт):

Автор решения: Yury Plinto

Прежде всего, для оконных приложений Windows нужно использовать функцию WinMain вместо main, которая в Windows используется только для консольных приложений (это наследство операционной системы MS DOS). Во-вторых, в объявлении оконной процедуры нужно использовать спецификатор CALLBACK: LRESULT CALLBACK WndProc. В-третьих, проверьте, что подключен заголовок windows.h: #include <windows.h>.

→ Ссылка