Skip to main content
gamedev.net
🔒 Locked

probelms and errors

Started by demonrealms Mar 22, 2003 at 11:58 AM 5 replies 200+ views
Original Post
demonrealms
demonrealms
Hey, I just go into direct x in my book. Well almost everything works fine except a few things. this is my code: int Game_Main(void *parms = NULL, int num_parms = 0) { // this is the main loop of the game, do all your processing // here LPDIRECTDRAW lpdd7 = NULL; LPDIRECTDRAW lpdd = NULL; DirectDrawCreate(NULL, &lpdd, NULL); if(FAILED(DirectDrawCreate(NULL, &lpdd, NULL))) { //error } // end if if(FAILED(lpdd->QueryInterface(IID_IDirectDraw7, (LPVOID *)&lpdd7))) { //error } // return success or failure or your own return code here return(1); } // end Game_Main My erroes are: C:\Documents and Settings\Ryan Gibson\Desktop\test2\test2.cpp(47) : warning C4101: ''buffer'' : unreferenced local variable C:\Documents and Settings\Ryan Gibson\Desktop\test2\test2.cpp(103) : error C2065: ''IID_IDirectDraw7'' : undeclared identifier Error executing cl.exe. test2.obj - 1 error(s), 1 warning(s) Can you please tell me what''s wrong? I put the paths in for dierct x.
Spudder
Spudder
The warning concerning buffer is telling you that you have a variable in your program that is not being used. The error about IID_IDirectDraw7 is the compiler complaining because you are attempting to use a variable without first declaring it or you have declared it but the function that is using it - Game_Main cannot "see" it - og back and check through your code to make sure that compiler can see the declaration when its compiling that particular piece of code.
demonrealms
demonrealms
Still not working, here''s the whole code:
// DEMO6_1.CPP basic DirectDraw initialization demo

// INCLUDES ///////////////////////////////////////////////

#define WIN32_LEAN_AND_MEAN // just say no to MFC

#define INITGUID // make sure directX guids are included

#include <windows.h> // include important windows stuff
#include <windowsx.h>
#include <mmsystem.h>
#include <iostream.h> // include important C/C++ stuff
#include <conio.h>
#include <stdlib.h>
#include <malloc.h>
#include <memory.h>
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
#include <math.h>
#include <io.h>
#include <fcntl.h>
#include "resource.h"
#include <ddraw.h> // include directdraw

// DEFINES ////////////////////////////////////////////////

// defines for windows
#define WINDOW_CLASS_NAME "WINCLASS1"


// GLOBALS ////////////////////////////////////////////////
HWND main_window_handle = NULL; // globally track main window
HINSTANCE hinstance_app = NULL; // globally track hinstance

char buffer[80]; // general printing buffer

// FUNCTIONS //////////////////////////////////////////////
LRESULT CALLBACK WindowProc(HWND hwnd,
UINT msg,
WPARAM wparam,
LPARAM lparam)
{
// this is the main message handler of the system
PAINTSTRUCT ps; // used in WM_PAINT
HDC hdc; // handle to a device context
char buffer[80]; // used to print strings

// what is the message
switch(msg)
{
case WM_CREATE:
{
// do initialization stuff here
// return success
return(0);
} break;

case WM_PAINT:
{
// simply validate the window
hdc = BeginPaint(hwnd,&ps);

// end painting
EndPaint(hwnd,&ps);

// return success
return(0);
} break;

case WM_DESTROY:
{

// kill the application, this sends a WM_QUIT message
PostQuitMessage(0);

// return success
return(0);
} break;

default:break;

} // end switch

// process any messages that we didn''t take care of
return (DefWindowProc(hwnd, msg, wparam, lparam));

} // end WinProc

///////////////////////////////////////////////////////////

int Game_Main(void *parms = NULL, int num_parms = 0)
{
LPDIRECTDRAW lpdd = NULL;
LPDIRECTDRAW lpdd7 = NULL;
// this is the main loop of the game, do all your processing
// here
DirectDrawCreate(NULL, &lpdd, NULL);
if(FAILED(DirectDrawCreate(NULL, &lpdd, NULL)))
{
//error
} // end if
if(FAILED(lpdd->QueryInterface(IID_IDirectDraw7,
(LPVOID *)&lpdd7)))
{
//error
}
lpdd->Release();
lpdd = NULL;

// return success or failure or your own return code here
return(1);

} // end Game_Main

////////////////////////////////////////////////////////////

int Game_Init(void *parms = NULL, int num_parms = 0)
{
// this is called once after the initial window is created and
// before the main event loop is entered, do all your initialization
// here

// return success or failure or your own return code here
return(1);

} // end Game_Init

/////////////////////////////////////////////////////////////

int Game_Shutdown(void *parms = NULL, int num_parms = 0)
{
// this is called after the game is exited and the main event
// loop while is exited, do all you cleanup and shutdown here

// return success or failure or your own return code here
return(1);

} // end Game_Shutdown

// WINMAIN ////////////////////////////////////////////////
int WINAPI WinMain( HINSTANCE hinstance,
HINSTANCE hprevinstance,
LPSTR lpcmdline,
int ncmdshow)
{

WNDCLASSEX winclass; // this will hold the class we create
HWND hwnd; // generic window handle
MSG msg; // generic message
HDC hdc; // graphics device context

// first fill in the window class stucture
winclass.cbSize = sizeof(WNDCLASSEX);
winclass.style = CS_DBLCLKS | CS_OWNDC |
CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc = WindowProc;
winclass.cbClsExtra = 0;
winclass.cbWndExtra = 0;
winclass.hInstance = hinstance;
winclass.hIcon = LoadIcon(hinstance, MAKEINTRESOURCE(IDI_ICON3));
winclass.hCursor = LoadCursor(NULL, IDC_ARROW);
winclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
winclass.lpszMenuName = NULL;
winclass.lpszClassName = WINDOW_CLASS_NAME;
winclass.hIconSm = LoadIcon(hinstance, MAKEINTRESOURCE(IDI_ICON3));

// save hinstance in global
hinstance_app = hinstance;

// register the window class
if (!RegisterClassEx(&winclass))
return(0);

// create the window
if (!(hwnd = CreateWindowEx(NULL, // extended style
WINDOW_CLASS_NAME, // class
"Demon Realms Studios", // title
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
0,0, // initial x,y
400,300, // initial width, height
NULL, // handle to parent
NULL, // handle to menu
hinstance,// instance of this application
NULL))) // extra creation parms
return(0);

// save main window handle
main_window_handle = hwnd;

// initialize game here
Game_Init();

// enter main event loop
while(TRUE)
{
// test if there is a message in queue, if so get it
if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
// test if this is a quit
if (msg.message == WM_QUIT)
break;

// translate any accelerator keys
TranslateMessage(&msg);

// send the message to the window proc
DispatchMessage(&msg);
} // end if

// main game processing goes here
Game_Main();

} // end while

// closedown game here
Game_Shutdown();

// return to Windows like this
return(msg.wParam);

} // end WinMain

//////////////////////////////////////////////////////////
Whats wrong with IID_IDirectDraw7? See errors on first post.
hammerstein_02
hammerstein_02
You are copying an example from a book I presume.. one that is slightly wrong. DirectDraw7 used a different method of starting up. Also, I suspect you may not have the correct SDK installed, or you aren''t setting up the compiler to look at the DirectX7 SDK directory. MSVC contains DirectX3 (as far as I know) headers and libs by default, which would explain the IID_IDirectDraw7 undeclared.

Hope this helps, if you have any further problems, tell the people here what you are trying to do and from what book. And PS I think this belongs in the beginners forum doesn''t it?

=*=
If things seem bad, think that they can get a whole load worse, and they don''t seem so bad anymore

=*=
demonrealms
demonrealms
I''m reading Tricks of the windows game programming gerus(2nd edition). I''m in chapter 6, and just got into Direct x. I''m on DirectDraw right now, but can''t seem to get it to reconize Direct x 7. I have 9.0 on my computer, so it should work. I''ve gone to the(in Microsoft Visual C++ compiler) project->settings and chnged the stuff i needed to there. And stuff like that. So it reconizes, version 1.0, but not 7. You can look up at the code above. The errors are on the first post I made.
demonrealms
demonrealms
I''m still having the same problem. Syaing IID_IDirectDraw7 is an undeclared identifier. I went to files in the vc++ tab and inserted all the .lib files for dx. So now i''m really confused why it''s not working.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.