Skip to main content
GameDev.net gamedev.net
🔒 Locked

Help Please!

Started by SeanUK Sep 24, 2000 at 1:26 PM 5 replies 350+ views
Original Post
SeanUK
SeanUK
This is a program i copied out of the book Windows Game Programming For Dummies it compiles with no problems but when i try to build it comes up with the following errors Linking... winx.obj : error LNK2001: unresolved external symbol _DirectDrawCreate@12 Debug/winconsole.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. Creating browse info file... here''s the code [source] // PROG8_1.CPP - Creates a DirectDraw object // INCLUDES /////////////////////////////////////////////// #define WIN32_LEAN_AND_MEAN #include // include important windows stuff #include #include #include // include important C/C++ stuff #include #include #include #include #include #include #include #include #include #include #include // directX includes // DEFINES //////////////////////////////////////////////// // defines for windows #define WINDOW_CLASS_NAME "WINXCLASS" // class name #define WINDOW_WIDTH 320 // size of window #define WINDOW_HEIGHT 200 // MACROS ///////////////////////////////////////////////// // these read the keyboard asynchronously #define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0) #define KEY_UP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1) // PROTOTYPES ///////////////////////////////////////////// int Game_Init(void *parms=NULL); int Game_Shutdown(void *parms=NULL); int Game_Main(void *parms=NULL); // GLOBALS //////////////////////////////////////////////// HWND main_window_handle = NULL; // save the window handle HINSTANCE main_instance = NULL; // save the instance char buffer[80]; // used to print text LPDIRECTDRAW lpdd; // pointer to direct draw object // 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 // what is the message switch(msg) { case WM_CREATE: { // do initialization stuff here return(0); } break; case WM_PAINT: { // start painting hdc = BeginPaint(hwnd,&ps); // end painting EndPaint(hwnd,&ps); return(0); } break; case WM_DESTROY: { // kill the application PostQuitMessage(0); 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 // WINMAIN //////////////////////////////////////////////// int WINAPI WinMain( HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) { WNDCLASS winclass; // this will hold the class we create HWND hwnd; // generic window handle MSG msg; // generic message HDC hdc; // generic dc PAINTSTRUCT ps; // generic paintstruct // first fill in the window class stucture 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(NULL, IDI_APPLICATION); winclass.hCursor = LoadCursor(NULL, IDC_ARROW); winclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH); winclass.lpszMenuName = NULL; winclass.lpszClassName = WINDOW_CLASS_NAME; // register the window class if (!RegisterClass(&winclass)) return(0); // create the window if (!(hwnd = CreateWindow(WINDOW_CLASS_NAME, // class "WinX Game Console", // title WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0,0, // x,y WINDOW_WIDTH, // width WINDOW_HEIGHT, // height NULL, // handle to parent NULL, // handle to menu hinstance,// instance NULL))) // creation parms return(0); // save the window handle and instance in a global main_window_handle = hwnd; main_instance = hinstance; // perform all game console specific initialization Game_Init(); // enter main event loop while(1) { 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 // shutdown game and release all resources Game_Shutdown(); // return to Windows like this return(msg.wParam); } // end WinMain // GAME PROGRAMMING CONSOLE FUNCTIONS //////////////// int Game_Init(void *parms) { // this function is where you do all the initialization // for your game // create object and test for error if ( DirectDrawCreate (NULL,&lpdd,NULL)!=DD_OK) return(0); // return success return(1); } // end Game_Init /////////////////////////////////////////////////////////// int Game_Shutdown(void *parms) { // this function is where you shutdown your game and // release all resources that you allocated // release the directdraw object if (lpdd!=NULL) lpdd->Release(); // return success return(1); } // end Game_Shutdown /////////////////////////////////////////////////////////// int Game_Main(void *parms) { // this is the workhorse of your game it will be called // continuously in real-time this is like main() in C // all the calls for you game go here! // your code goes here // return success return(1); } // end Game_Main /////////////////////////////////////////////////////////// i am using visual c++ 6 and have the directx sdk and all the include files and library files are linked, but i can''t get the bloody thing to work. ps sorry about the long post
SeanUK
SeanUK
the include''s are
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
SeanUK
SeanUK
include
include
include
include
include
include
include
include
include
include
include
include
include
include
include

these are the includes
goir
goir
remove the < and > round the filenames
SeanUK
SeanUK
include windows.h
include windowsx.h
include mmsystem.h
include iostream.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 ddraw.h
djsteffey
djsteffey
be sure you link with the directdraw libraries
how do you do this ?
click on project -> settings -> link tab -> type in ddraw.lib in the box

"Now go away or I shall taunt you a second time"
- Monty Python and the Holy Grail
themGames Productions

SeanUK
SeanUK
thank you ncsu121978, the book never mentioned anything about it.

Topic Locked

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

Sign in to reply to this topic.