怎样编译DirectX程序

在编译DirectX程序时总是出现诸如“error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7'”的错误,即便是安装了DirectX的SDK也一样,这让刚刚一腔热血奔赴游戏开发的初学者来说真是当头一棒深受打击,不过没关系,下面我将详细说明问题产生的原因及其解决方法。 首先,要开发DirectX程序,必须安装DirectX SDK,到网上都能找到,9.0 的 SDK 大概227兆大小; 安装完成后就可以进行DirectX程序设计了,一般我们都知道,要使用SDK,就要包含它的头文件和lib库,参照SDK提供的sample,做一个最简单的DX程序,但是我们马上会发现,即使我们包含了#include "ddshow.h"等必须的头文件、在Settings里面包含了dxguid.lib、ddraw.lib、dsound.lib等库文件,编译时总会出现这样的错误: G:/.....xx.h(209) : error C2061: syntax error : identifier 'LPDIRECTDRAWSURFACE7' 当然了,意思是说我不认识“LPDIRECTDRAWSURFACE7”这个家伙,那么好,从Tools->Options...->Directories中将DX SDK 的Include目录(比如你的SDK安装在了D:盘的DXSDK下,则Include目录为D:/DXSDK/Include)加进去、将DX SDK 的lib目录加进去,然后编译,晕啊,还是一如既往的不认识LPDIRECTDRAWSURFACE7符号,忽然想到编译器的查找顺序问题,遂重新进入Tools->Options...->Directories中,将Include里的DXSDK的目录往上移到第一行,编译,OK了@_@ 不过这时候又出现了新情况: xx.obj : error LNK2001: unresolved external symbol _DirectDrawCreateEx@16 xx.obj : error LNK2001: unresolved external symbol _IID_IDirectDraw7 找不到链接符号DirectDrawCreateEx,同样的问题:包含了新头文件,链接了老lib库,所以有些函数是找不到的,同样,进入Tools->Options...->Directories中,将lib里的DXSDK的目录往上移到第一行,编译,OK。 总结:一般出现找不到头文件的错误,我们都能想到可能是找不到SDK目录的问题,在Tools->Options...->Directories中将相应include、lib目录加进去就行了,但是接下来的错误往往让我们一头雾水,因为该加的都加了,很容易忽略目录顺序的问题。 over了。 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/khler/archive/2007/07/17/1695346.aspx

你可能感兴趣的:(怎样编译DirectX程序)