missing '' before 'if' - Direct Input

Started by
12 comments, last by Dave Hunt 19 years, 1 month ago
hey - i create the Dinput interface as follows: LPDIRECTINPUT8 lpdi = NULL; /***/if (FAILED(DirectInput8Create(hinstance, DIRECTINPUT_VERSION, IID_IDirectInput8, (void***)&lpdi,NULL))) return (0); yet it always says missing ';' before 'if' on * line(cmmnted) i know there is a bug in my compiler like this on try blocks (MSVC++ 6.0), but does anyone else have this problem?
JUST-CODE-IT.NETManaged DirectX & C# TutorialsForumsArticlesLinksSamples
Advertisement
APpears to me as though the line causing the error is nothing to do with that code segment there. Post the code to the entire code file betwee [source][/source] tags.

ace

[Edit: Use [ to write '[' without causing GDNet to interpret it as a tag.]

[Edited by - Oluseyi on March 3, 2005 5:03:27 PM]
Have you included the direct input header file? Sometimes this error message occurs if a type (in this case LPDIRECTINPUT8) is unknown.
bakery2k1 is most likely correct in his suppposition. However, in addition to that errr, you are casting parameter four in the wrong way, it should be (void **)&lpdi and not (void****)&lpdi since you are not passing an array of lpdis or some similar. Just another thing to watch out for.
hmm, the source is:

#include "Includes.h"#include "Menu Values.h"//-----------------------------------------------------------------------------// Globals//-----------------------------------------------------------------------------unsigned short int animation_frame = 0;unsigned short int i;unsigned short int j;unsigned short int k;unsigned short int z;unsigned short int x = 0;const unsigned short int size_x = 64;const unsigned short int size_y = 32;const unsigned short int screen_width = 520;const unsigned short int screen_height = 360;const unsigned short int tile_width = 64;const unsigned short int tile_height = 32;const unsigned short int tile_move_x = 32;const unsigned short int tile_move_y = 16;const unsigned short int tile_start_x = 400;const unsigned short int tile_start_y = 600;const unsigned short int tile_x = (j*size_x) + (z*32);LPDIRECTINPUT8 lpdi = NULL;if (FAILED(DirectInput8Create(hinstance, 							  DIRECTINPUT_VERSION,							  IID_IDirectInput8,							  (void**)&lpdi,NULL)))return (0);class TILE{public:	int itsX;	int itsY;	int quad[3];	int isAnimated;};// custom vertex structure for our quadsstruct CCustomVertex{    float	x, y, z, rhw;	// The transformed position for the vertex.    DWORD	dwColor;		// The vertex colour.	float	tu, tv;			// Texture co-ordinates.	static const DWORD FVF;};const DWORD CCustomVertex::FVF = D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1;///////////change later to quadstruct	CRectangularObject{	IDirect3DTexture9	*pTexture;	CCustomVertex		vertices[4];};HWND main_window_handle		= NULL; // globally track main windowHINSTANCE main_instance		= NULL; // globally track hinstanceint MouseX,MouseY,MouseButtons;CRectangularObject		*g_pObjects;UINT					g_nObjectBufferSize, g_nNewObjectPointer;#include "BungEngine.h"LPDIRECT3DTEXTURE9		tTexture;LPDIRECT3DTEXTURE9		tAnimTexture;LPDIRECT3DTEXTURE9		tGrassTextures;LPDIRECT3DTEXTURE9      tSand;TILE qTile[3][19][10];int GameInit(){	InitD3d(1024,768);	g_pObjects = new CRectangularObject[800];	g_nObjectBufferSize = 800;	tTexture =  LoadTexture(_T("Grass.png"));	tAnimTexture = LoadTexture (_T("Water Files2.png"));	tGrassTextures = LoadTexture(_T("GRASS_TRANSITION.png"));	tSand = LoadTexture(_T("Sand.png"));for (k=0;k<2;k++, z=0){for (i=0; i<19; i++){	for (j=0; j<10; j++)	{		switch (MAP_STRUCTURE[0][j])		{		case 0:		{			qTile[k][j].itsX = (j*size_x) + (z*32) + (200);	        qTile[k][j].itsY = (i*size_y)-(i*16) + (200);			qTile[k][j].quad[0] = 0;		    qTile[k][j].isAnimated = 0;		}break;				case 10:		{			qTile[k][j].itsX = (j*size_x) + (z*32) + (200);			qTile[k][j].itsY = (i*size_y)-(i*16) + (200);			qTile[k][j].quad[0] = CreateQuad(qTile[k][j].itsX, qTile[k][j].itsY, 64, 32, tTexture, 0, 0);			qTile[k][j].isAnimated = 0;								}break;		case 20:		{			qTile[k][j].itsX = (j*size_x) + (z*32) + (200);			qTile[k][j].itsY = (i*size_y)-(i*16) + (200);			qTile[k][j].quad[0] = CreateQuad(qTile[k][j].itsX, qTile[k][j].itsY, 64, 32, tSand, 0, 0);			qTile[k][j].isAnimated = 0;								}break;		case 40:		{			qTile[k][j].itsX = (j*size_x) + (z*32) + (200);			qTile[k][j].itsY = (i*size_y)-(i*16) + (200);			qTile[k][j].quad[0] = CreateQuad(qTile[k][j].itsX, qTile[k][j].itsY, 64, 32, tAnimTexture, 0, 0);			qTile[k][j].quad[1] = CreateQuad(qTile[k][j].itsX, qTile[k][j].itsY, 64, 32, tAnimTexture, 64, 0);			qTile[k][j].quad[2] = CreateQuad(qTile[k][j].itsX, qTile[k][j].itsY, 64, 32, tAnimTexture, 128, 0);			qTile[k][j].isAnimated = 1;								}break;		}	}								               			if (z==1)			z=0;			else z=1;		}}	g_pd3dDevice->CreateVertexBuffer(g_nNewObjectPointer * 4 * sizeof(CCustomVertex),									D3DUSAGE_WRITEONLY,					///look into this--------------- 									CCustomVertex::FVF,									D3DPOOL_MANAGED, &g_pVB, NULL);    return(1);}int GameMain(){	BeginRender();		// Clear the backbuffer to black	g_pd3dDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_ARGB(0,000,000,000)/*D3DCOLOR_XRGB(0,0,255)*/, 1.0f, 0);for (k=0;k<3;k++)for (i=0; i<19; i++)	for (j=0; j<10; j++)	{	if (qTile[k][j].isAnimated == 0)		DrawQuad(qTile[k][j].quad[0]);	if (qTile[k][j].isAnimated == 1)		DrawQuad(qTile[0][j].quad[animation_frame]);}			FinishRender();	return(1);}int GameShutdown(){	tTexture->Release();	tAnimTexture->Release();	tGrassTextures->Release();	tSand->Release();	CloseD3d();	return(1);}//-----------------------------------------------------------------------------// Window Proc Function// Description: the windows procedure//-----------------------------------------------------------------------------LRESULT CALLBACK WindowProc(HWND hwnd,							UINT msg,							WPARAM wparam,							LPARAM lparam){	PAINTSTRUCT		ps;	HDC				hdc;		switch(msg)	{		case WM_CREATE:		{			SetTimer(hwnd, 1, 500, NULL);			return(0);		} break;		case WM_PAINT:		{			hdc = BeginPaint(hwnd,&ps);			EndPaint(hwnd,&ps);			return(0);		} break;		case WM_MOUSEMOVE:		{			MouseX = (int)LOWORD(lparam);			MouseY = (int)HIWORD(lparam);			MouseButtons = (int)wparam;		case WM_TIMER:			{				animation_frame++;				if (animation_frame == 2)					animation_frame = 0;			} break;		} break;		case WM_LBUTTONDOWN:{ MouseButtons = (int)wparam; } break;		case WM_LBUTTONUP:	{ MouseButtons = (int)wparam; } break;		case WM_RBUTTONDOWN:{ MouseButtons = (int)wparam; } break;		case WM_RBUTTONUP:	{ MouseButtons = (int)wparam; } break;SendMessage(hwnd, WM_NCLBUTTONDOWN, HTCAPTION, NULL);/*HTCAPTION = the caption/titlebar areaHTBOTTOMRIGHT = the resizing corner*/		case WM_DESTROY:		{			PostQuitMessage(0);				KillTimer(hwnd, 1);			return(0);		} break;		default:break;	}	return (DefWindowProc(hwnd, msg, wparam, lparam));}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	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			= NULL;//LoadIcon(hinstance, MAKEINTRESOURCE(IDI_ICON1));	winclass.hCursor		= NULL;//LoadCursor(hinstance, MAKEINTRESOURCE(IDC_CURSOR1));	winclass.hbrBackground	= (HBRUSH)GetStockObject(BLACK_BRUSH);	winclass.lpszMenuName	= "EditorControlsMenu";	winclass.lpszClassName	= "WINCLASS1";	winclass.hIconSm		= NULL;//LoadIcon(hinstance, MAKEINTRESOURCE(IDI_ICON1));	// save hinstance in global	main_instance = hinstance;		if (!RegisterClassEx(&winclass))		return(0);	//MessageBox(NULL, "Creating window.", "Manual Debug Operation", MB_OK);	if (!(hwnd = CreateWindowEx(WS_EX_APPWINDOW,					  "WINCLASS1",					  "ToW: Map Editor Rendered Display",					  WS_POPUP | WS_VISIBLE | WS_BORDER | WS_CAPTION | WS_MAXIMIZEBOX | WS_MINIMIZEBOX					  | WS_SYSMENU,					  (GetSystemMetrics(SM_CXSCREEN)/2)-(520/2),(GetSystemMetrics(SM_CYSCREEN)/2)-(360/2),					  520,360,					  NULL,					  LoadMenu(hinstance, "EditorControlsMenu"),					  hinstance,					  NULL)))		return(0);//HMENU hmenuhandle = LoadMenu(hinstance, "EditorControlsMenu");////SetMenu(hwnd, hmenuhandle);	// save main window handle	main_window_handle = hwnd;	ShowCursor(TRUE);	GameInit();	// enter main event loop	while(TRUE)	{		if (PeekMessage(&msg,NULL,0,0,PM_REMOVE))		{			if (msg.message == WM_QUIT)				break;			TranslateMessage(&msg);			DispatchMessage(&msg);		}		GameMain();	}	GameShutdown();    	return(0);//msg.wParam);}


and i have:

#define INITGUID
#define WIN32_LEAN_AND_MEAN // just say no to MFC

#include <windows.h>
#include <windowsx.h>
#include <mmsystem.h>
#include <objbase.h>
#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 <tchar.h>

#include <C:\SDK (C++)\include\d3d9.h>
#include <C:\SDK (C++)\include\d3dx9.h>
#include <C:\SDK (C++)\include\dinput.h>
//#include <C:\SDK (C++)\include\dxerr.h>
//#include <C:\SDK (C++)\include\dxerr8.h>
#include <C:\SDK (C++)\include\dxerr9.h>
//#include <C:\SDK (C++)\include\dinput8.h>

//#include "Tile Values.h"
#include "Texture Values.h"
#include "array main.h"
#include "Transitional Layering.h"
#include "Menu.cpp"
#include "Menu Values.h"
JUST-CODE-IT.NETManaged DirectX & C# TutorialsForumsArticlesLinksSamples
Have you tried putting your code inside a (main)-function?
Hard for MSVC to regonize it otherwise :P


your 'if' statement is not inside a function at all... at least it seems so
yea thats probably it- i just got it out of a book and the if is for error testing, but ur prob right - i just need to sort out the hinstance thing now - thakns
JUST-CODE-IT.NETManaged DirectX & C# TutorialsForumsArticlesLinksSamples
What the f*, i didn't understood that at all:)
 #pragma comment(lib, "directinput.lib") directinput.lib may not be the correct name but this should link you with the library. Most likely DirectInput is not defined.

This topic is closed to new replies.

Advertisement