2011-07-05 9 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ビット版]

ここ

コードのサンプルと、それが行われているように見えます。私は私のプロジェクトにd3d9.libとd3dx9.libの両方をリンクしていると私は(d3d9.h、d3dx9.h)を知っているすべてのneccesaryのヘッダファイルが含まれている

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; 
} 

(私は十分な情報を与えた願っています)。どんな助けでも大歓迎です!前もって感謝します!!!

答えて

1

リンカがそのような機能がないと不平を言っているようです。LoadSurfaceあなたはそれをどこで定義しましたか?

+0

これはリンク時エラーであり、コンパイル時エラーではありません。 –

+0

申し訳ありません... "リンカ..."と言うべきです。 – bobbymcr

+0

私はLoadSurfaceにはの関数であると言うことができます。これはDirectX 9 SDKに含まれており、ライブラリをリンクしたりヘッダファイルを含めても問題はありません。それは私の問題だとはっきり言っていますが、私はそれを修正する方法やそれを診断する方法を知らない。 (a.k.a.私は初心者です) –

関連する問題