VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
123
返回列表 发新帖
楼主: VBProFan

[经验技巧] InStr 数值型、布尔型、And 逻辑与,按位与

[复制链接]
发表于 2011-8-29 01:21:10 | 显示全部楼层
回复 VBProFan 的帖子

我的意思是弹栈出错了,你得到了不是你该得到的数据
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-29 10:00:16 | 显示全部楼层
本帖最后由 VBProFan 于 2011-8-29 10:00 编辑

今天上班有环境测试了,终于发现问题所在了,原来 Boolean 类型变量内部存储的确实可以是 0 和 -1 以外的数:






谢谢大家了!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

发表于 2011-8-29 10:32:10 | 显示全部楼层
本帖最后由 worldy 于 2011-8-29 10:33 编辑

回复 VBProFan 的帖子

我怎么测试都是-1,我感觉你的栈错位了,你把你的FtpPutFile声明的返回AS boolean换回AS Long 试试?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-29 12:04:44 | 显示全部楼层
worldy 发表于 2011-8-29 10:32
回复 VBProFan 的帖子

我怎么测试都是-1,我感觉你的栈错位了,你把你的FtpPutFile声明的返回AS boolean ...

果然!把 API 声明的返回值改为 Long 类型就得到 -1 了,boolean 反而把 -1 转换为了 C 语言的 true 值----1

点评

同样是成功,写成 as long 时得 -1,写成 as boolean 时得 1.  发表于 2011-8-29 14:48
[quote]把 API 声明的返回值改为 Long 类型就得到 -1 了[/quote]再好好测试一下,原始API的返回值肯定还是1,但是类型转换成Boolean的时候才变成-1的;如果API返回值类型直接填Boolean的话,VB就不会进行类型转换  发表于 2011-8-29 14:48
boolean 反而把 -1 转换为了 C 语言的 true 值——1 什么意思呢?  发表于 2011-8-29 12:16
回复 支持 反对

使用道具 举报

发表于 2011-8-29 12:13:35 | 显示全部楼层
回复 VBProFan 的帖子

是啊,返回类型错误比参数声明错误的结果更为严重
回复 支持 反对

使用道具 举报

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

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-6-29 21:53

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表