WINDOWS编程大师技巧代码无法编译?

hydralisk 2003-09-26 10:24:10


最后一个大的游戏OUTPOST编译报错,一共有4个
d:\wmc14_outpost\t3dlib3.h(64) : error C2065: 'DSBCAPS_CTRLDEFAULT' : undeclared identifier

d:\wmc14_outpost\t3dlib2.cpp(83) : error C2065: 'DirectInputCreate' : undeclared identifier

d:\wmc14_outpost\t3dlib2.cpp(110) : error C2065: 'DIDEVTYPE_JOYSTICK' : undeclared identifier

d:\wmc14_outpost\t3dlib3.h(64) : error C2065: 'DSBCAPS_CTRLDEFAULT' : undeclared identifier

如何解决?
...全文
68 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lpclpc 2003-09-27
  • 打赏
  • 举报
回复
怎样才能在9.0的sdk编译他的代码?要改代码的那个部分?
answerear 2003-09-27
  • 打赏
  • 举报
回复
对,只要是用他上面带的directx6.1版本,同时把他相应的文件包含到目录中就行了。
hydralisk 2003-09-27
  • 打赏
  • 举报
回复
哦 靠 都是COM的吗怎么会不兼容
弟十六 2003-09-27
  • 打赏
  • 举报
回复
1.保证所用的SDK是6.0。
2.在项目附加包含目录中设置到SDK相应目录。
jollyroger 2003-09-27
  • 打赏
  • 举报
回复
把DX6的接口都改成DX8(我当时是用DX8的时候改的...现在在DX9环境下仍然可以通过编译...你也可以直接改成DX9的接口试试)


比如在T3DLIB2.CPP把DInput初始化部分原代码改成..

int DInput_Init(void)
{
// this function initializes directinput
if (FAILED(DirectInput8Create(main_instance,DIRECTINPUT_VERSION,IID_IDirectInput8,(void**)&lpdi,NULL)))
return(0);

// return success
return(1);



} // end DInput_Init


又比如JOYSTICK的初始化部分
int DInput_Init_Joystick(int min_x, int max_x, int min_y, int max_y, int dead_zone)
{
// this function initializes the joystick, it allows you to set
// the minimum and maximum x-y ranges

// first find the fucking GUID of your particular joystick
lpdi->EnumDevices(//DIDEVTYPE_JOYSTICK,
DI8DEVTYPE_JOYSTICK,
DInput_Enum_Joysticks,
&joystickGUID,
DIEDFL_ATTACHEDONLY);

......

还有部分变量申明
如T3DLIB3.CPP里
IDirectMusicLoader8 *dm_loader = NULL; // the directmusic loader


其他类似...也不要看到个东西就加个8...最好还是根据你的错误信息一步步找上去...

good luck
Zeroins 2003-09-26
  • 打赏
  • 举报
回复
楼主用的 DXSDK 不是 6.1 吧
你用它盘里带的 6.1 SDK 就不会有这个问题了

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧