DirectX 9“无法解析的外部符号”问题

发布于 2024-11-18 08:39:00 字数 1496 浏览 3 评论 0原文

我已经学习 DirectX 几天了,遇到了一个问题。我一直在遵循书籍示例并解决了出现的几个恼人的问题,但未能成功解决我最近的一个问题。每当我尝试编译时,编译器都会指出我有一个未解析的外部符号。下面是错误代码。

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

我正在运行:[编译器:Visual Studios 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 链接到我的项目,并包含我知道的所有必要的头文件(d3d9.h、d3dx9.h)。非常感谢任何帮助!提前致谢!!!

I have been working on learning DirectX for a couple days and have run into a problem. I have been following a books example and have solved several annoying problems that have come up, but have been unsuccessful at solving my most recent one. The compiler states that I have an unresolved external symbol whenever I try to compile. Here is the error code below.

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

I am running: [compiler: Visual Studios 2008] [Operating system: Windows 7 64bit professional]

Here a sample of the code and where it seem to be taking place. (I hope I gave enough info)

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

I have linked both d3d9.lib and d3dx9.lib to my project and have included all neccesary header files that I know of (d3d9.h, d3dx9.h). Any help is greatly appreciated! Thanks in advance!!!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜夜流光相皎洁 2024-11-25 08:39:00

看起来链接器抱怨没有这样的函数 LoadSurface。你在哪里定义的?

It looks like the linker is complaining that there is no such function LoadSurface. Where did you define it?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文