C/Visual C - ayuda de c++

 
Vista:

ayuda de c++

Publicado por esteban (1 intervención) el 27/10/2006 20:48:51
hola, soy principiante en lo que se refiere a la programacion de videojuegos...
tengo un libro para programacion de videojuegos en windows y pues uso el direct 8SDK junto con el visual c++ version 6...
el codigo es el siguiente...
/*==========================================================================
*
* PROGRAMA DE EJEMPLO NUMERO 1
*
* PROGRAMA VACIO. SIRVE DE PLANTILLA PARA EL FUTURO PROGRAMA
* TERMINA AL PULSARSE UNA LA TECLA
*
***************************************************************************/

//Se definen algunos datos generales como el nombre del programa.
#define NAME "EJEMPLO 1"
#define TITLE "COMO HACER UN VIDEOJUEGO 1"
#define WIN32_LEAN_AND_MEAN

//Se incluyen los ficheros fuente que son necesarios.
#include <windows.h>
#include <windowsx.h>

//Se incluyen otros ficheros fuente necesarios.
#include <stdlib.h>
#include <stdarg.h>
#include "resource.h"

//Este es el manejador de la ventana de la aplicacion.
HWND hwnd;

BOOL bActive; // almacena si la aplicacion esta activa

//Programa principal en si mismo. Aqui estara contenido el programa principal.
void game(void)
{
}

//WindowProc. Se ejecuta continuamente, es el blucle de mensajes de Windows.
long FAR PASCAL WindowProc( HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam )
{
//Analiza los mensajes
switch( message )
{
//Si se activa la aplicacion, bACtiva pasa a ser verdadero.
case WM_ACTIVATEAPP:
bActive = TRUE;
break;

//En caso de crearse la aplicacion no hace nada en especial.
case WM_CREATE:
break;

//En caso de variarse el curso tampoco realiza nada en especial.
case WM_SETCURSOR:
SetCursor(NULL);
return true;

//En caso de pulsarse una tecla, se realiza lo siguiente
case WM_KEYDOWN:
//Si se pulsa una tecla, manda un mensaje de cerrar la
//aplicacion.
PostMessage(hWnd, WM_CLOSE, 0, 0);
break;

//En caso de acabarse la aplicacion se manda un mensaje de salir.
case WM_DESTROY:
PostQuitMessage( 0 );
break;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}

//Esta funcion es la primera que se ejecuta.
//En ella se crea Direct-Draw y se llama a la inicializacion
//de otras rutinas.
static BOOL doInit( HINSTANCE hInstance, int nCmdShow )
{
//Estructuras de datos necesarias para crear la ventana.
WNDCLASS wc;

//Define las caracteristicas de la ventana de la aplicacion
//que se esta creando.
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon( hInstance, IDI_APPLICATION );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground = NULL;
wc.lpszMenuName = NAME;
wc.lpszClassName = NAME;
RegisterClass( &wc );

//Llamada a CreateWindowsEx, crea la ventana en si.
hwnd = CreateWindowEx(
WS_EX_TOPMOST,
NAME,
TITLE,
WS_POPUP,
0, 0,
GetSystemMetrics( SM_CXSCREEN ),
GetSystemMetrics( SM_CYSCREEN ),
NULL,
NULL,
hInstance,
NULL );

//Si no se ha creado la ventana, retorna generando un error.
if( !hwnd )
{
return FALSE;
}

//Muestra la ventana y la actualiza.
ShowWindow( hwnd, nCmdShow );
UpdateWindow( hwnd );

//Todo ha salido bien, Retorna TRUE.
return TRUE;
}

//Llamada al bucle de mensajes. Desde aqui se llama al WindowProc.
int PASCAL WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{


MSG msg;

lpCmdLine = lpCmdLine;
hPrevInstance = hPrevInstance;

//En caso de que fallara la inicializacion, se retorna FALSE.
if( !doInit( hInstance, nCmdShow ) )
{
return FALSE;
}

//Se ejecuta siempre.
while( 1 )
{
//Si hay algun mensaje, se llama a WindowProc para
//que gestione dicho mensaje.
if( PeekMessage( &msg, NULL, 0, 0, PM_NOREMOVE ))
{
if( !GetMessage( &msg, NULL, 0, 0 ) ) return msg.wParam;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
//Si la aplicacion esta activa, se llama al nucleo del
//programa en si.
if( bActive )
{
game();
}
//En otro caso, espera la llegada de mensajes.
else
{
WaitMessage();
}
}
}

el problema es que cuando lo compilo, no muestra errores ni nada...
pero cuando lo voy a ejecutar sale que hay un error con el (_main), y que no lo puedo ejecutar...
nose que sea, falta una libreria?
si alguien lo ejecuta bien, que me diga como hizo...
gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder