求vb6结构体的大小 本帖最后由 bcrun 于 2012-12-21 11:03:22 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用LenB就可以了,LenB得出是24字节,而Len是20字节,呵呵。 本帖最后由 bcrun 于 2012-12-21 11:04:28 编辑 Len求出来的是字符,LenB求出来的是字节。你自己看着办吧~ Len求出来的是字符,LenB求出来的是字节。 本帖最后由 bcrun 于 2012-12-21 11:04:56 编辑 Len 函数 返回 Long,其中包含字符串内字符的数目,或是存储一变量所需的字节数。语法Len(string | varname)Len 函数的语法有下面这些部分:部分 说明 string 任何有效的字符串表达式。如果 string 包含 Null,会返回 Null。 Varname 任何有效的变量名称。如果 varname 包含 Null,会返回 Null。如果 varname 是 Variant,Len 会视其为 String 并且总是返回其包含的字符数。 说明两个可能的参数必须有其一(而且只能有其一)。如为用户定义类型,Len 会返回其写至文件的大小。注意 LenB 函数作用于字符串中的字节数据,如同在双字节字符集(DBCS)语言中一样。所以 LenB 返回的是用于代表字符串的字节数,而不是返回字符串中字符的数量。如为用户自定义类型,LenB 返回在内存中的大小,包括元素之间的衬垫。对于使用 LenB的示例代码,请参阅示例主题中的第二个示例。注意 当在用户自定义数据类型中使用变长字符串时,Len 可能不能确定实际存储所需的字节数目。 对于32位系统,内存对齐于4字节的整数倍,cpu读写内存时,对4n位置的效率最高,如果变量不是4的整数倍位置,则cpu读写内存需要进行转换,效率会低,因此,VB分配变量总是尽可能的分配在4n的位置上对于64位系统,内存对齐于8字节整数倍 Len() 用于计算写入文件后(压缩)的大小LenB() 用于计算在内存中(对齐后)的大小按照不同的用途选用恰当的函数。 很久没接触 VB 了都忘记了数组操作了0 to 4 是不是有5个元素? 0 1 2 3 4 MsgBox LenB(StrConv("我的A", vbFromUnicode)) '5 错了,不是4字节对齐的。要看当前的数据占的字节数的,如果当前字节占2个字节,如果前面是奇数字节,则要+1字节对齐。同理,如果当前字节是4字节(比如long),则前面的字节数必须是4的倍数,否则+字节补齐。 最终还是改版了 怎么让WEB控件打开网页时候不下载图片和FLASH 高手请教!如何使用API添加键盘布局?[VB6.0] DATAGRID的几个问题? 用Winsock编的两台机子通信在网络上连接的问题 在程序中用了连接字符串,在(无开发环境中)win98中运行还是需要配置odbc,但在winxp中却不需要,这是怎么回事?? datagrid的怪问题,控件大人快来帮帮忙呀。:( 如何直接读取内存中的位图数据并贴到窗口中? 我想用DAO作一个验证窗体,用户名要与密码相对应.最好能给我源码研究(我是菜鸟) 一个问题,急。。。。。。。 50人民币求帮助。 post问题 如何让mid父窗口没有边框?我只能去掉标题栏,但是边框去不掉。
返回 Long,其中包含字符串内字符的数目,或是存储一变量所需的字节数。语法Len(string | varname)Len 函数的语法有下面这些部分:部分 说明
string 任何有效的字符串表达式。如果 string 包含 Null,会返回 Null。
Varname 任何有效的变量名称。如果 varname 包含 Null,会返回 Null。如果 varname 是 Variant,Len 会视其为 String 并且总是返回其包含的字符数。
说明两个可能的参数必须有其一(而且只能有其一)。如为用户定义类型,Len 会返回其写至文件的大小。注意 LenB 函数作用于字符串中的字节数据,如同在双字节字符集(DBCS)语言中一样。所以 LenB 返回的是用于代表字符串的字节数,而不是返回字符串中字符的数量。如为用户自定义类型,LenB 返回在内存中的大小,包括元素之间的衬垫。对于使用 LenB的示例代码,请参阅示例主题中的第二个示例。注意 当在用户自定义数据类型中使用变长字符串时,Len 可能不能确定实际存储所需的字节数目。
对于32位系统,内存对齐于4字节的整数倍,cpu读写内存时,对4n位置的效率最高,如果变量不是4的整数倍位置,则cpu读写内存需要进行转换,效率会低,因此,VB分配变量总是尽可能的分配在4n的位置上
对于64位系统,内存对齐于8字节整数倍
LenB() 用于计算在内存中(对齐后)的大小
按照不同的用途选用恰当的函数。
都忘记了数组操作了
0 to 4 是不是有5个元素? 0 1 2 3 4
错了,不是4字节对齐的。
要看当前的数据占的字节数的,如果当前字节占2个字节,如果前面是奇数字节,则要+1字节对齐。同理,如果当前字节是4字节(比如long),则前面的字节数必须是4的倍数,否则+字节补齐。