请教:为什么我的DX例子程序编译不能通过?ddraw.h中的IID_IDirectDraw7符号不能解析,为什么?

时间:2021-01-24 18:26:47
大家好:
    我是一个DX初学者,现在写一个DX的例子程序,当我想创建DIRECT DRAW 8.0 对象时,始终不能编译通过,请朋友们帮忙。

//代码如下:
LPDIRECTDRAW7 &lpDDraw = NULL;
//...
LPDIRECTDRAW lpTempDDraw = NULL;
if (FAILED(DirectDrawCreate(NULL, &lpTempDDraw, NULL)))
{
return FALSE;
}
//创建DirectDraw 8.0对象
if (FAILED(lpTempDDraw->QueryInterface(IID_IDirectDraw7, (LPVOID *)&lpDDraw)))
{
return FALSE;
}
SAFE_RELEASE(lpTempDDraw);
return TRUE;

编译的时候出现错误:
error LNK2001: unresolved external symbol _IID_IDirectDraw7

   我在ddraw.h中找到IID_IDirectDraw7的GUID,把QueryInterface部分的代码修改成:
GUID iid_dx7 = {0x15e65ec0,0x3b9c,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b};
if (FAILED(lpTempDDraw->QueryInterface(iid_dx7, (LPVOID *)&lpDDraw)))
{

}

    编译通过。
    这个问题很奇怪,请大家帮忙解决。是不是少包含了什么文件呢?谢谢

3 个解决方案

#1


缺少lib文件

#2


老兄,说清楚嘛!缺少哪个LIB文件

#pragma comment(lib, "ddraw.lib")
这行我是加上了的

#3


找到原因了,少包含了一个LIB文件:
加上
#pragma comment(lib, "dxguid.lib") 就编译通过了

#1


缺少lib文件

#2


老兄,说清楚嘛!缺少哪个LIB文件

#pragma comment(lib, "ddraw.lib")
这行我是加上了的

#3


找到原因了,少包含了一个LIB文件:
加上
#pragma comment(lib, "dxguid.lib") 就编译通过了