Rw3.7 PC的pakfile的例子有问题

原创 2006年06月18日 12:29:00

解决方法之一:

    struct PakFileSystem

    {

        RtFileSystem  dfs;

        PakOpenFile  *files;

    };

改成

    struct PakFileSystem

    {

        RtWinFileSystem    dfs;

        PakOpenFile  *files;

    };

而且这个结构必须是RwMalloc或RwCalloc出来的,因为它是要通过RwFree释放,不能是全局变量。

 

    因为这个自定义的文件系统使用的fsClose函数指针指向的是默认的文件系统的函数,即windows的,那个函数会访问一个RtWinFileSystem的结构,是通过传入的RtFileSystem类型指针。

但是RtWinFileSystem比RtFileSystem 大。导致越界访问。

    Windows默认文件系统的安装在win.c 中 RwBool psInstallFileSystem(void),然后RtWinFSystemInit()。参考src中rtfswin.c中该函数,fs->fsClose = TkWinFSClose;

static void TkWinFSClose(RtFileSystem *winFileSystem )。

我曾经给RenderWare Support提过这个问题,他们给的解决方法跟我的不一样,好像是把fsClose指向的函数换掉。




版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

软起动器3RW44常见问题集锦

  • 2014年08月09日 13:58
  • 214KB
  • 下载

sharity+krb.3.7.solaris-i86pc.tar.gz

  • 2010年04月02日 12:36
  • 3.38MB
  • 下载

arcgis-viewer-flex-3.7-src 部署时出现问题的解决

将下载好的导入flex4.6会出现如下问题 解决办法:将导入libs进行自动编译 解决思路:(1)搜索com.esri.ags (2)发现需要导入外部swc(3)确定为agslib(4)与当前框架...

[编程之美] PSet3.7 队列中取最大值操作问题

问题描述:        假设有这样一个拥有3个操作的队列:       1. EnQueue(v): 将v加入队列中      2. DeQueue(): 使队列中的队首元素删除并返回此元...

编程之美:第三章 结构之法 3.7队列中取最大值操作问题

/* 队列中取最大值操作问题: 假设有这样一个拥有3个操作的队列 1EnQueue(v):将v加入到队列中 2DeQueue():使队列中的队首元素删除并返回此元素 3MaxElement:返回队列中...

编程之美--3.7 队列中取最大值操作问题

思考1 1 利用堆的原理来解决问题...
  • seawade
  • seawade
  • 2014年08月06日 00:01
  • 544

DBImport V3.7版本发布及软件稳定性(自动退出问题)解决过程分享

DBImport V3.7介绍:  1:先上图,再介绍亮点功能: 主要的升级功能为: 1:增加(Truncate Table)清表再插入功能: 清掉再插,可以保证两个库的数据一致,自己很喜...
  • cyq1162
  • cyq1162
  • 2016年11月23日 12:19
  • 277

一个很简单的Android手机和pc通信的例子

一个简单的pc和Android手机利用adb通信的例子。 自己初次写的时候一抹黑,所以弄了个简单的例子。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Rw3.7 PC的pakfile的例子有问题
举报原因:
原因补充:

(最多只允许输入30个字)