2011-07-05 2 views
0

Я работаю над изучением DirectX на пару дней и столкнулся с проблемой. Я следил за книжным примером и решил несколько неприятных проблем, которые возникли, но не удалось решить мою самую последнюю. Компилятор заявляет, что у меня есть нерешенный внешний символ всякий раз, когда я пытаюсь скомпилировать. Ниже приведен код ошибки ниже.Проблема с неразрешенным внешним символом DirectX 9

1>game.obj : error LNK2019: unresolved external symbol "struct IDirect3DSurface9 * __cdecl 
LoadSurface(char *,unsigned long)" ([email protected]@[email protected]@[email protected]) referenced in 
function "int __cdecl Game_Init(struct HWND__ *)" ([email protected]@[email protected]@@Z) 
1>C:\Users\Christopher\Documents\Visual Studio 2008\Projects\Work\Debug\Work.exe : fatal error 
LNK1120: 1 unresolved externals 

Я бегу: [составитель: Визуальная Studios 2008] [Операционная система: Windows 7 64bit профессиональный]

Вот пример кода, и где, кажется, что это может занять место. (Я надеюсь, что я дал достаточно информации)

LPDIRECT3DSURFACE9 kitty_image[7]; 
SPRITE kitty; 
LPDIRECT3DSURFACE9 back; 

//timing variable 
long start = GetTickCount(); 

//initializes the game 
int Game_Init(HWND hwnd) 
{ 
char s[20]; 
int n; 

//set random number seed 
srand(time(NULL)); 

//load the sprite animation 
for (n=0; n<6; n++) 
{ 
    sprintf(s, "cat%d.bmp",n+1); 
    kitty_image[n] = LoadSurface(s, D3DCOLOR_XRGB(255,0,255)); 
    if (kitty_image[n] == NULL) 
     return 0; 
} 

back = LoadSurface("background.bmp", NULL); 


//initialize the sprite's properties 
kitty.x = 100; 
kitty.y = 150; 
kitty.width = 96; 
kitty.height = 96; 
kitty.curframe = 0; 
kitty.lastframe = 5; 
kitty.animdelay = 2; 
kitty.animcount = 0; 
kitty.movex = 8; 
kitty.movey = 0; 

//return okay 
return 1; 
} 

Я связан как d3d9.lib и d3dx9.lib к моему проекту и включил все neccesary файлов заголовков, которые я знаю (d3d9.h, d3dx9.h). Любая помощь очень ценится! Заранее спасибо!!!

ответ

1

Похоже, что компоновщик жалуется, что такой функции нет LoadSurface. Где вы это определили?

+0

Это ошибка времени соединения, а не ошибка времени компиляции. –

+0

Извините ... должен сказать «компоновщик ...». – bobbymcr

+0

Насколько я могу судить, LoadSurface - это функция внутри . Он был включен в DirectX 9 SDK, и у меня нет проблем с связыванием библиотек или с файлами заголовков. В значительной степени это говорит о моей проблеме, но я понятия не имею, как ее исправить или даже начать диагностировать. (a.k.a. Я новичок) –

Смежные вопросы