天!GetFullPathName() 竟然对 DF 位有要求
时间:2010-11-22
来源:互联网
写了个小程序,用到了 GetFullPathName() 这个系统函数。开始时用得都好好的,后来有改动,运行到这个函数就出错了,Ollydbg 时提示是 ntdll 内 int3 中断;将 EIP 重设下再运行这个函数,似又正常了;如果将错误交回,在该函数是返回 0, GetLastError() 提示 ERROR_NOT_ENOUGH_MEMORY。
对着这个问题,真是百思不得其解啊。左看,右看,上看,下看,终还是很茫然。网上搜索了下,也无结果。
再仔细瞪着这个语句看了半天,一闪念间,想想修改的有上面反向检索个字符串 std 设置了递减方向标记位。于是,在 GetFullPathName() 语句之前加上了个 cld 指令,再运行,竟然就正常了!
很少写东西的,用到什么函数,也就是查下 Win32API.HLP。一直都没看到有对 DF 标记位有要求的啊!这个,算怎么回事儿呢?
我的系统是 xp/sp3,GetFullPathName() 函数所在的 kernel32.dll 版本为 5.1.2600.5512
对着这个问题,真是百思不得其解啊。左看,右看,上看,下看,终还是很茫然。网上搜索了下,也无结果。
再仔细瞪着这个语句看了半天,一闪念间,想想修改的有上面反向检索个字符串 std 设置了递减方向标记位。于是,在 GetFullPathName() 语句之前加上了个 cld 指令,再运行,竟然就正常了!
很少写东西的,用到什么函数,也就是查下 Win32API.HLP。一直都没看到有对 DF 标记位有要求的啊!这个,算怎么回事儿呢?
我的系统是 xp/sp3,GetFullPathName() 函数所在的 kernel32.dll 版本为 5.1.2600.5512
作者: zara 发布时间: 2010-11-22
系统API函数,遇到串操作,不会去设置DF,所以楼主应当检查自己是否改动了DF而又没有恢复?
作者: coohai 发布时间: 2010-11-22
我自己程序里,怎么动 DF 是我自己的事儿了,也是我的自由吧。如果系统 API 要求 DF 的状态,要么自己进行设置,要么就应在文档里显著地、明确地说明了才对吧。
作者: zara 发布时间: 2010-11-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28