Fiz algumas modificações no seu código (usei o Dev-C++) como a ultima virgula do hwnd = CreateWindowA aquele NULL la não existe akela virgula nele!! Em int WINAPI WinMain não é LPCSTR é LPSTR confira o código abaixo espero ter ajudado ^_^ #include <Windows.h> #include <stdio.h> #include <stdlib.h> LRESULT CALLBACK WindowFunc(HWND, UINT,WPARAM, LPARAM); char szWinName[] = "Minha_Janela";//nome da classe da janela int WINAPI WinMain (HINSTANCE hThisInst, HINSTANCE prevInst, LPSTR lpszArgs, int nWinMode){ HWND hwnd; MSG msg; WNDCLASSA wcl; wcl.hInstance = hThisInst;//handle desta instância wcl.lpszClassName = szWinName;//nome da classe da janela wcl.lpfnWndProc = WindowFunc;//funão da janela wcl.style = 0;//estilo padrão wcl.hIcon = LoadIcon(NULL,IDI_APPLICATION);//estilo do icone wcl.hCursor = LoadCursor(NULL,IDC_ARROW);//estilo do cursor wcl.lpszMenuName = NULL;//sem menu wcl.cbClsExtra = 0;//nenhuma informação wcl.cbWndExtra = 0;//extra é necessario wcl.hbrBackground = (HBRUSH) 0; //faz o fundo da tela ficar branco //Registra a classe de janela if(!RegisterClassA(&wcl)) return 0; //Apos registrar a classe - cria a janela hwnd = CreateWindowEx( 0, szWinName, //nome da classe da janela "Esqueleto Windows",//título WS_OVERLAPPEDWINDOW,//estilo da janela - normal CW_USEDEFAULT, //coordenada x, deixa o windows decidir CW_USEDEFAULT,//coordenada y, deixa o windows decidir CW_USEDEFAULT,//largura - deixa o windows decidir CW_USEDEFAULT,//altura - deixa o windows decidir HWND_DESKTOP, //sem janela pai NULL,//sem menu hThisInst, //handle desta instancia do programa NULL //nehum argumento adicional ); //exibe a janela ShowWindow(hwnd, nWinMode); UpdateWindow(hwnd); //cria a repetição da mensagem while (GetMessage(&msg, NULL, 0, 0)){ TranslateMessage(&msg);//permite uso de teclado DispatchMessage(&msg);//retorna o controle do windows } return msg.wParam; } //função chamada pelo windows que recebe as mensagens da fila de mensagem LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ switch(message){ case WM_DESTROY: //encerra o rograma PostQuitMessage(0); break; default: //deixa owindows processar qualquer mensagem não especificadas no switch acima return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }