我是一个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")
这行我是加上了的
#pragma comment(lib, "ddraw.lib")
这行我是加上了的
#3
找到原因了,少包含了一个LIB文件:
加上
#pragma comment(lib, "dxguid.lib") 就编译通过了
加上
#pragma comment(lib, "dxguid.lib") 就编译通过了
#1
缺少lib文件
#2
老兄,说清楚嘛!缺少哪个LIB文件
#pragma comment(lib, "ddraw.lib")
这行我是加上了的
#pragma comment(lib, "ddraw.lib")
这行我是加上了的
#3
找到原因了,少包含了一个LIB文件:
加上
#pragma comment(lib, "dxguid.lib") 就编译通过了
加上
#pragma comment(lib, "dxguid.lib") 就编译通过了