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

UNDECLARED - first use this function


Alef

Pergunta

Pessoal, buenas! :blink:

Digitei o código abaixo no Dev C++ e pimba... além de uma lista de erros o primeiro da lista é o "HJAN" UNDECLARED!

Alguém arrisca alguma dica??? Como faço para esse código funcionar?? rs

Agradeço possíveis sugestões!

#include <windows.h>
#include "generic.h"


HINSTANCE hCop;        
LPCTSTR lpszNomeAplic = "Genérico";
LPCTSTR lpszTitulo = "Aplicativo Genérico";
BOOL RegisterWin95(CONST WNDCLASS* lpwc);


int APIENTRY WinMain (HINSTANCE hCopia, HINSTANCE hCopiaAnt, LPSTR lpLinhaCmd, int nCmdExibe)


{

MSG msg;
[b]HJAN hJan;[/b]  <_<  aqui é o valorzinho "undeclared" entre outros conflitos
WNDCLASS cj;

cj.style            = CS_HREDRAW | CS_VREDRAW;
cj.lpfnWndProc            = (WNDPROC) ProcJan;
cj.cbClsExtra            = 0;
cj.cbWndExtra            = 0;
cj.hInstance            = 0;
cj.hIcon            = LoadIcon(hCopia, lpszNomeAplic);
cj.hCursor            = LoadCursor(NULL, IDC_ARROW);
cj.hbrBackground        = (HBRUSH) (COLOR_WINDOW+1);
cj.lpszMenuName            = lpszNomeAplic;
cj.lpszClassName        = lpszNomeAplic;


if(!RegisterWin95(&cj))

return false;

hCop = hCopia;
hJan = CreateWindow (lpszNomeAplic, lpszTitulo, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hCopia, NULL);

if(!hJan)
return false;

ShowWindow(hJan, nCmdExibe);
UpdateWindow(hJan);
while(GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg);
DispatchMessage(&msg);

}

return(msg.wParam);

}

BOOL RegisterWin95 (CONST WNDCLASS* lpcj)

{

WNDCLASSEX cjex;

cjex.style
cjex.lpfnWndProc
cjex.cbClsExtra
cjex.cbWndExtra
cjex.hInstance
cjex.hIcon
cjex.hCursor
cjex.hbrBackground
cjex.lpszMenuName
cjex.lpszClassName
cjex.cbSize
cjex.hIconSm
return'RegisterClassEx(&cjex);

}

LRESULT CALLBACK ProcJan(HJAN hJan, UINT uMsg, WPARAM wParam, LPARAM lParam)

{

switch(uMsg)

{

case WM_COMMAND: switch(LOWORD(wParam))

{

case IDM_TESTAR :
break

case IDM_SAIR :
DestroyWindow(hJan);
break;

}

break;

case WM_DESTROY :
PostQuitMessage(0);
break;

default:

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

}

return(0L);

}

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Esse tipo HJAN não existe (ao menos nunca ouvi falar). Você deve ter esquecido algum typedef. Tente trocar por HWND hJan=[...]

Sua dica acertou em cheio, mas aí a linha abaixo se tornou a "UNDECLARED":

cj.lpfnWndProc = (WNDPROC); ProcJan;

Esse tipo HJAN não existe (ao menos nunca ouvi falar). Você deve ter esquecido algum typedef. Tente trocar por HWND hJan=[...]

Sua dica acertou em cheio, mas aí a linha abaixo se tornou a "UNDECLARED":

cj.lpfnWndProc = (WNDPROC); ProcJan;

Bom... mudei o cj.lpfnWndProc = (WNDPROC); ProcJan; para cj.lpfnWndProc = (WNDPROC); hJan; mas agora travou mais embaixo, literalmente!

Link para o comentário
Compartilhar em outros sites

  • 0

Enfim,.... fiz isto... o prog abre mas trava... :huh:

#include <windows.h>
//#include "generic.h"

HINSTANCE hCop;                //ocorrencia atual
LPCTSTR lpszNomeAplic = "Genérico";
LPCTSTR lpszTitulo = "Aplicativo Genérico";
BOOL RegisterWin95(CONST WNDCLASS* lpwc);


int APIENTRY WinMain (HINSTANCE hCopia, HINSTANCE hCopiaAnt, LPSTR lpLinhaCmd, int nCmdExibe)


{

MSG msg;
HWND hJan;
HWND procJan;
WNDCLASS cj;

cj.style            = CS_HREDRAW | CS_VREDRAW;
cj.lpfnWndProc            = (WNDPROC) procJan;
cj.cbClsExtra            = 0;
cj.cbWndExtra            = 0;
cj.hInstance            = 0;
cj.hIcon            = LoadIcon(hCopia, lpszNomeAplic);
cj.hCursor            = LoadCursor(NULL, IDC_ARROW);
cj.hbrBackground        = (HBRUSH) (COLOR_WINDOW+1);
cj.lpszMenuName            = lpszNomeAplic;
cj.lpszClassName        = lpszNomeAplic;


if(!RegisterWin95(&cj))

return false;

hCop = hCopia;
hJan = CreateWindow (lpszNomeAplic, lpszTitulo, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hCopia, NULL);

if(!hJan)
return false;

ShowWindow(hJan, nCmdExibe);
UpdateWindow(hJan);
while(GetMessage(&msg, NULL, 0, 0))

{

TranslateMessage(&msg);
DispatchMessage(&msg);

}

return(msg.wParam);

}

BOOL RegisterWin95 (CONST WNDCLASS* lpcj)

{

WNDCLASSEX cjex;

cjex.style                          = lpcj->style;
cjex.lpfnWndProc                    = lpcj->lpfnWndProc;
cjex.cbClsExtra                     = lpcj->cbClsExtra;
cjex.cbWndExtra                     = lpcj->cbWndExtra;
cjex.hInstance                      = lpcj->hInstance;
cjex.hIcon                          = lpcj->hIcon;
cjex.hCursor                        = lpcj->hCursor;
cjex.hbrBackground                  = lpcj->hbrBackground;
cjex.lpszMenuName                   = lpcj->lpszMenuName;
cjex.lpszClassName                  = lpcj->lpszClassName;
cjex.cbSize                         = sizeof(WNDCLASSEX);
cjex.hIconSm                        = LoadIcon(cjex.hInstance, "PEQUENO");
return RegisterClassEx(&cjex);

}

LRESULT CALLBACK hJan(HWND hJan, UINT uMsg, WPARAM wParam, LPARAM lParam)

{

switch(uMsg)

{

case WM_COMMAND: switch(LOWORD(wParam))

{

case 'IDM_TESTAR':
break;

case 'IDM_SAIR':
DestroyWindow(hJan);
break;

}

break;

case WM_DESTROY :
PostQuitMessage(0);
break;

default:

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

}

return(0L);

}

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...