GIDForums  

Go Back   GIDForums > Computer Programming Forums > C Programming Language
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

 
 
Thread Tools Search this Thread Rate Thread
  #1  
Old 14-Sep-2003, 05:19
TheKoolGuy TheKoolGuy is offline
New Member
 
Join Date: Sep 2003
Posts: 2
TheKoolGuy is an unknown quantity at this point
Question

Dx 9 hlp :(


ok, long bit of code cos i threw it in2 1 doc 4 ya, i get one error when compiled in VS.net and can't fix it lol. It is:
main.obj : error LNK2019: unresolved external symbol _Direct3DCreate9@4 referenced in function "int __cdecl GfxStart(void)" (?GfxStart@@YAHXZ)
Debug/TDS.exe : fatal error LNK1120: 1 unresolved externals

CPP / C++ / C Code:
#include <windows.h>
#include <stdio.h>

//DirectX
#pragma (d3d9.lib)
#pragma (d3dx9.lib)
#include <d3d9.h>
#include <d3dx9.h>

//Instances
HINSTANCE g_hInst;
HWND g_hWnd;
IDirect3D9 *g_pD3D = NULL;
IDirect3DDevice9 *g_pD3DDevice = NULL;

//Defines
#define WNDWIDTH 800
#define WNDHEIGHT 600
#define WNDTYPE WS_OVERLAPPEDWINDOW
const char g_szClass[] = "TDSClass";
const char g_szCaption[] = "TheDarkSoldiers Equilibrium - TheBalanceOfPower";

//Prototypes
int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow);
void AppError(BOOL Fatal, char *Text, ...);
long FAR PASCAL WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
BOOL RegisterWindowClasses(HINSTANCE hInst);
BOOL UnregisterWindowClasses(HINSTANCE hInst);
HWND CreateMainWindow(HINSTANCE hInst);
BOOL DoInit();
BOOL DoShutdown();
BOOL DoPreFrame();
BOOL DoFrame();
BOOL DoPostFrame();

//Main Program
int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
{
MSG Msg;
g_hInst = hInst;

//Register windows classes
if((RegisterWindowClasses(hInst)) == FALSE)
return FALSE;

//Create window
if((g_hWnd = CreateMainWindow(hInst)) == NULL)
return FALSE;

if(DoInit() == TRUE) {

//Enter pump
ZeroMemory(&Msg, sizeof(MSG));
while(Msg.message != WM_QUIT) {

if(PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE)) {
TranslateMessage(&Msg);
DispatchMessage(&Msg);
} else {
if(DoPreFrame() == FALSE)
break;
if(DoFrame() == FALSE)
break;
if(DoPostFrame() == FALSE)
break;
}}}

DoShutdown();

UnregisterWindowClasses(hInst);

return TRUE;
}

BOOL RegisterWindowClasses(HINSTANCE hInst)
{
WNDCLASSEX wcex;

//Create window class and reg
wcex.cbSize = sizeof(wcex);
wcex.style = CS_CLASSDC;
wcex.lpfnWndProc = WindowProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInst;
wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = NULL;
wcex.lpszMenuName = NULL;
wcex.lpszClassName = g_szClass;
wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&wcex))
return FALSE;
}

BOOL UnregisterWindowClasses(HINSTANCE hInst)
{
UnregisterClass(g_szClass, hInst);

return TRUE;
}

HWND CreateMainWindow(HINSTANCE hInst)
{
HWND hWnd;

hWnd = CreateWindow(g_szClass, g_szCaption, WNDTYPE, 0, 0, WNDWIDTH, WNDHEIGHT,
NULL, NULL, hInst, NULL);
if(!hWnd)
return NULL;

ShowWindow(hWnd, SW_NORMAL);
UpdateWindow(hWnd);
return hWnd;
}

void AppError(BOOL Fatal, char *Text, ...)
{
char CaptionText[12];
char ErrorText[2048];
va_list valist;

if(Fatal == FALSE)
strcpy(CaptionText, "Error");
else
strcpy(CaptionText, "Fatal Error");

va_start(valist, Text);
vsprintf(ErrorText, Text, valist);
va_end(valist);
MessageBox(NULL, ErrorText, CaptionText, MB_OK | MB_ICONEXCLAMATION);
if(Fatal == TRUE)
PostQuitMessage(0);
}

long FAR PASCAL WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg) {
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

BOOL DoInit()
{
	BOOL GfxStart();
return TRUE;
}

BOOL DoShutdown()
{

return TRUE;
}

BOOL DoPreFrame()
{

return TRUE;
}

BOOL DoFrame()
{

return TRUE;
}

BOOL DoPostFrame()
{

return TRUE;
}

BOOL GfxStart()
{
	D3DDISPLAYMODE d3ddm;
	D3DPRESENT_PARAMETERS d3dpp;

	if((g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)) == NULL) {
		//Error occured
	}
	if(FAILED(g_pD3D->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm))){
	   //error occured
   }
	if(FAILED(g_pD3D->CheckDeviceType(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, D3DFMT_A1R5G5B5, D3DFMT_A1R5G5B5,
   FALSE))) {
	   //error occured
   }
d3ddm.Width = 800;
d3ddm.Height = 600;
d3ddm.RefreshRate = 0;
d3ddm.Format = D3DFMT_A1R5G5B5;
ZeroMemory(&d3dpp, sizeof(D3DPRESENT_PARAMETERS));
d3dpp.Windowed = FALSE;
d3dpp.SwapEffect = D3DSWAPEFFECT_FLIP;
d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
d3dpp.BackBufferFormat = d3ddm.Format;

if(FAILED(g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, g_hWnd,
   D3DCREATE_MIXED_VERTEXPROCESSING, &d3dpp, &g_pD3DDevice))) {
	   //error occured
   }

return TRUE;
}
 
 

Recent GIDBlogHalfway done! by crystalattice

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Network Sites: GIDNetwork · GIDWebHosts · GIDSearch · Learning Journal by J de Silva, The

All times are GMT -6. The time now is 22:47.


vBulletin, Copyright © 2000 - 2008, Jelsoft Enterprises Ltd.