找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4409|回复: 8

[求助] Fn.10 这个内置函数怎么调用?

[复制链接]
发表于 2013-6-8 16:16:18 | 显示全部楼层 |阅读模式
请问Fn.10 这个函数怎么调用?
#define substring ((int (*)(const char *, const char *, int))((*(int **)0x8300)[10]))

其实我是想实现这样一个目的:
比如:

write (md)0x20000+4 abcdefg1**\0
想截取这段内存任意一段字符串,比如像截取123这段字符串,
想用Fn.10 这个函数来实现,但试了好多次,一直没有成功,最后想无可想了,就只有发帖了!

拜托各位了!
发表于 2013-6-8 17:33:20 | 显示全部楼层
这样吗?                 
Snap0.jpg

点评

这样是可以,但是如果写入内存的字符串超512字节,一个变量也就完不成了,情况也就变复杂了!能用函数直接操作可能会比较好!  详情 回复 发表于 2013-6-8 17:46
回复

使用道具 举报

 楼主| 发表于 2013-6-8 17:46:44 | 显示全部楼层
zhaohj 发表于 2013-6-8 17:33
这样吗?

这样是可以,但是如果写入内存的字符串超512字节,一个变量也就完不成了,情况也就变复杂了!能用函数直接操作可能会比较好!
回复

使用道具 举报

发表于 2013-6-9 08:18:48 | 显示全部楼层
本帖最后由 chenall 于 2013-6-9 08:20 编辑

这个函数不是用来截取字符串的,
要截取的话直接用最简单的printf函数就行了.
如下就可以截取到 0x600000地址处的前512个字符(或者\0之前的字符)
call Fn.0 0 "%.*s"  512 0x600000

call Fn.0 0 "%.512s"  0x600000
当然也可以截取字符存放到其它地址
call Fn.0 0x40000 "%.4s" 0x600000

点评

谢谢chenall!随便问问那Fn.10这个函数是用来做什么的?  详情 回复 发表于 2013-6-9 18:05
回复

使用道具 举报

 楼主| 发表于 2013-6-9 18:05:55 | 显示全部楼层
chenall 发表于 2013-6-9 08:18
这个函数不是用来截取字符串的,
要截取的话直接用最简单的printf函数就行了.
如下就可以截取到 0x600000地 ...

谢谢chenall!随便问问那Fn.10这个函数是用来做什么的?
回复

使用道具 举报

发表于 2013-6-10 11:20:24 | 显示全部楼层
函数原型
int substring (const char *s1, const char *s2, int case_insensitive)
判断s1是否是s2的子串(判断s1和s2的前面部份是否一样),case_insensitive是否区分大小写
例: 以下返回值<0.说明是子串
substring("abcd","abcdef",0)
以下返回值>0,s1不是s2的子串
substring("abcd","ab",0)
如果两个字符串一样返回0

点评

谢谢chenall解惑!  详情 回复 发表于 2013-6-12 23:38
回复

使用道具 举报

发表于 2013-6-10 14:14:55 | 显示全部楼层
这个函数是否有问题啊?
Snap0.jpg
回复

使用道具 举报

发表于 2013-6-10 15:45:43 | 显示全部楼层
确实不能连用,使用空格分隔正确。
回复

使用道具 举报

 楼主| 发表于 2013-6-12 23:38:46 | 显示全部楼层
chenall 发表于 2013-6-10 11:20
函数原型
int substring (const char *s1, const char *s2, int case_insensitive)
判断s1是否是s2的子串 ...

谢谢chenall解惑!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-4-21 11:11

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表