关于vc6.0下使用DirectX 9的中输入输出设备编译不同过的问题


    最近需要用D3D开发程序,平台是VC6.0,比较古老了,使用中遇到各种问题,将其中一些困扰时间较长的问题列出,供同样遇到此问题人做参考。


        1VC6环境下,使用D3D设备,需要包含#include 头文件,由于在VC6include中已有该头文件,而该文件中的DX版本较低,因此会出现LPDIRECTINPUTDEVICE8未定义等错误,解决办法:


1)将dinput.h拷贝到当前工程目录;


2)在tool->options中的Directories选项卡中的include file列表中将D3Dinclude目录放在VC6平台的include目录之前。


         2VC6环境下,编译时出现D3dxInput.obj: error LNK2001: unresolved external symbol _IID_IDirectInput8A d错误,也是由于vc6.0中的lib库中包含dxguid.lib,编译时连接到vc6.0自带的dxguid.lib,而不是D3D中的dxguid.lib文件。


解决办法:在tool->options中的Directories选项卡中的Library file列表中将D3Dlib目录放在VC6平台的lib目录之前。


编译链接使用了正确的lib文件,但又会出现如下错误(debug版本出错,release版本没有):


dxguid.lib(dxguid.obj) : fatal errorLNK1103: debugging information corrupt; recompile module


网上查了很久,是没有调式信息导致,Project ->Project Setting中的Link选项卡下的 Genereatedebug info 选项取消前面的“”,在编译就能顺利通过了




你可能感兴趣的:(vc++,vc,3d)