Guest --Cezar -- Postado Julho 5, 2008 Denunciar Share Postado Julho 5, 2008 Ola,Estou dando os primeiros passo no C++ e estou precisando de uma dica parasolucionar o erro abaixo na compilação da rotina:Agradeço a dica.v_cez@yahoo.com.brEste é o erro:************C:\LIVRO>\borland\bcc55\bin\make -r -DAPLIC=olaMAKE Version 5.2 Copyright © 1987, 2000 Borland \borland\bcc55\bin\bcc32 -tW -I\borland\bcc55\include -L\borland\bcc55\lib ola.cBorland C++ 5.5.1 for Win32 Copyright © 1993, 2000 BorlandOLA.C:Warning W8065 OLA.C 70: Call to function 'RegistraClasse' with no prototype in function WinMainWarning W8065 OLA.C 76: Call to function 'CriaJanela' with no prototype in function WinMainWarning W8065 OLA.C 88: Call to function 'While' with no prototype in function WinMainError E2379 OLA.C 89: Statement missing ; in function WinMainWarning W8057 OLA.C 97: Parameter 'hPrevInstance' is never used in function WinMainWarning W8057 OLA.C 97: Parameter 'lpCmdLine' is never used in function WinMain*** 1 errors in Compile ***** error 1 ** deleting ola.objEste é o código:*************// Classes, Funçoes e Mensagens da API#include <windows.h>// Define o nome da aplicação texto da barra de tituloCONST CHAR AppName[]="Olá Window";CONST CHAR AppTitle[]="Olá Windows - Versão Win32";//Variaveis globaisHWND hWindow; // Handle da janela principalMSG uMsg; // Mensagem retirada da filaHINSTANCE hInst; // Instancia da Aplicação// Window ProcedureLRESULT 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 PrincipalBOOL 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 PrincipalHWND 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;} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Julho 6, 2008 Denunciar Share Postado Julho 6, 2008 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
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
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.