Ir para conteúdo
Fórum Script Brasil
  • 0

Como resolvo este Erro?


Guest --Cezar --

Pergunta

Guest --Cezar --

Ola,

Estou dando os primeiros passo no C++ e estou precisando de uma dica para

solucionar o erro abaixo na compilação da rotina:

Agradeço a dica.

v_cez@yahoo.com.br

Este é o erro:

************

C:\LIVRO>\borland\bcc55\bin\make -r -DAPLIC=ola

MAKE Version 5.2 Copyright © 1987, 2000 Borland

\borland\bcc55\bin\bcc32 -tW -I\borland\bcc55\include -L\borland\bcc55\l

ib ola.c

Borland C++ 5.5.1 for Win32 Copyright © 1993, 2000 Borland

OLA.C:

Warning W8065 OLA.C 70: Call to function 'RegistraClasse' with no prototype in f

unction WinMain

Warning W8065 OLA.C 76: Call to function 'CriaJanela' with no prototype in funct

ion WinMain

Warning W8065 OLA.C 88: Call to function 'While' with no prototype in function W

inMain

Error E2379 OLA.C 89: Statement missing ; in function WinMain

Warning W8057 OLA.C 97: Parameter 'hPrevInstance' is never used in function WinM

ain

Warning W8057 OLA.C 97: Parameter 'lpCmdLine' is never used in function WinMain

*** 1 errors in Compile ***

** error 1 ** deleting ola.obj

Este é o código:

*************

// Classes, Funçoes e Mensagens da API

#include <windows.h>

// Define o nome da aplicação texto da barra de titulo

CONST CHAR AppName[]="Olá Window";

CONST CHAR AppTitle[]="Olá Windows - Versão Win32";

//Variaveis globais

HWND hWindow; // Handle da janela principal

MSG uMsg; // Mensagem retirada da fila

HINSTANCE hInst; // Instancia da Aplicação

// Window Procedure

LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg,

WPARAM wParam, LPARAM lParam)

{

PAINTSTRUCT ps; // Informaçoes para desenho

HDC hdc; // Handle de Device Context

RECT rt; // Define área retangular

switch (uMsg)

{

case WM_PAINT:

hdc = BeginPaint(hWnd, &ps);

GetClientRect(hWnd, &rt);

DrawText(hdc, AppName, strlen(AppName), &rt,

DT_SINGLELINE | DT_CENTER | DT_VCENTER);

EndPaint(hWnd, &ps);

return 0;

case WM_DESTROY:

PostQuitMessage(0);

return 0;

}

return DefWindowProc(hWnd, uMsg, wParam, lParam);

}

// Define e registra a Classe da janela Principal

BOOL RegistraClasse()

{

WNDCLASSEX wcex;

wcex.cbSize = sizeof(WNDCLASSEX);

wcex.style = CS_HREDRAW | CS_VREDRAW;

wcex.lpfnWndProc = (WNDPROC)WindowProc;

wcex.cbClsExtra = 0;

wcex.cbWndExtra = 0;

wcex.hInstance = hInst;

wcex.hIcon = NULL;

wcex.hCursor = LoadCursor(NULL, IDC_ARROW);

wcex.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);

wcex.lpszMenuName = NULL;

wcex.lpszClassName = AppName;

wcex.hIconSm = NULL;

return (RegisterClassEx(&wcex));

}

// Cria Janela Principal

HWND CriaJanela()

{

hWindow = CreateWindowEx(0, AppName, AppTitle,

WS_OVERLAPPEDWINDOW, 160, 120, 320, 240,

NULL, NULL, hInst, NULL);

return hWindow;

}

// Funcao Principal (ponto de entrada da aplicação)

int APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

// Armazena a Instancia da aplicação

hInst = hInstance;

// Verifica se a Classe foi registrada corretamente

if (!RegistraClasse())

{

MessageBox(NULL,"Erro ao Registrar Classe","Atencção!", MB_OK);

return FALSE;

}

// Cria Janela Principal

hWindow = CriaJanela();

// Handle da janela Principal deve ser diferente de 0

if (!hWindow)

{

MessageBox(NULL,"Erro ao Criar Janela Principal","Atenção!",MB_OK);

return FALSE;

}

// Exibe a Janela Principal

ShowWindow(hWindow, nCmdShow);

// Gera mensagem WM_PAINT para atualizar a tela

UpdateWindow(hWindow);

// Loop de Mensagens

While (GetMessage(&uMsg, NULL, 0, 0 ))

{

TranslateMessage(&uMsg);

DispatchMessage(&uMsg);

}

// Retira registro da classe

UnregisterClass(AppName, hInst);

// Valor de retorno da aplicação

return uMsg.wParam;

}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

As instruções em C são todas em minúsculas, portanto não é While e sim while. As vezes outros erros são gerados a partir de um erro como esse. Veja se corrigindo isso elimina os outros. Caso não, poste aqui o que ficou.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...