摘自帮助文档,我也不是很理解
创新互联专注于湘潭县企业网站建设,成都响应式网站建设,购物商城网站建设。湘潭县网站建设公司,为湘潭县等地区提供建站服务。全流程定制制作,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
估计只有在Visual Basic 文件输入和输出才有用
示例
Visual Basic 复制代码
Structure Person
Public ID As Integer
Public MonthlySalary As Decimal
Public LastReviewDate As Long
VBFixedString(15) Public FirstName As String
VBFixedString(15) Public LastName As String
VBFixedString(15) Public Title As String
VBFixedString(150) Public ReviewComments As String
End Structure
注意
VBFixedStringAttribute 是信息性的属性,不能用于将可变长度字符串转换为固定长度字符串。此属性的作用是修改那些识别 VBFixedStringAttribute 的方法或 API 调用(如 Len 和 FilePut 函数)使用结构中的字符串以及非局部变量的方式。请记住,此属性不会更改字符串本身的实际长度。
备注
默认情况下,Visual Basic 字符串为可变长度的字符串。在使用 Visual Basic 文件输入和输出函数(如需要固定长度字符串的 FileGet 和 FilePut)时,该属性非常有用。
注意
VBFixedStringAttribute 属性以字节而不是字符为单位指定字符串长度。
其中每16个连续(string id连续)的字符串存为一个RT_STRING资源。在内存中表示为16个变长结构体。
struct rt_string_block{unsigned short cch;
wchar_t str [0];};下面这段代码可以加载指定语言的字符串。返值为0时,表示失败;大于零,结果为字符串的长度(以宽字符记)。如果你需要ANSI字符串,请使用WideCharToMultiByte来进行转换。
你搞错了一点:Unicode字符规定,每个字符占用两个字节,包括英文和数字,所以你只需将:
MarshalAs(UnmanagedType.ByValTStr, sizeconst:=3) Public s As String
改成:
MarshalAs(UnmanagedType.ByValTStr, sizeconst:=6) Public s As String
即可!
摘自帮助文档,我也不是很理解
估计只有在Visual Basic 文件输入和输出才有用
示例
Visual Basic 复制代码
Structure Person
Public ID As Integer
Public MonthlySalary As Decimal
Public LastReviewDate As Long
VBFixedString(15) Public FirstName As String
VBFixedString(15) Public LastName As String
VBFixedString(15) Public Title As String
VBFixedString(150) Public ReviewComments As String
End Structure
注意
VBFixedStringAttribute 是信息性的属性,不能用于将可变长度字符串转换为固定长度字符串。此属性的作用是修改那些识别 VBFixedStringAttribute 的方法或 API 调用(如 Len 和 FilePut 函数)使用结构中的字符串以及非局部变量的方式。请记住,此属性不会更改字符串本身的实际长度。
备注
默认情况下,Visual Basic 字符串为可变长度的字符串。在使用 Visual Basic 文件输入和输出函数(如需要固定长度字符串的 FileGet 和 FilePut)时,该属性非常有用。
注意
VBFixedStringAttribute 属性以字节而不是字符为单位指定字符串长度。
→