2011-07-05 57 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 

我運行:[編譯:視覺工作室2008] [操作系統:Windows 7 64位專業]

這裏的代碼樣本,它似乎正在發生。 (我希望我給了足夠的信息)

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中,並且我沒有鏈接庫或包含頭文件的問題。這幾乎是說我的問題,但我不知道如何解決它,甚至開始診斷它。 (又名我是初學者) –