Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

LenB has changed from VB5 to VB6

Total Hit ( 2658)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


Visual Basic stores UDTs in unpacked format, that is it alignes all UDT elements to the double word (except that Integers and Boolean are aligned to the word, and byte elements aren't aligned at all). To keep the elements aligned VB adds padding bytes where necessary. For instance the structure:

Click here to copy the following block
Type MyType
  Member1 As Integer
  Member2 As Long
End Type

has a "real" size of 6 bytes, but VB adds 2 bytes between Member1 and Member2 in order to maintain the dword alignment of second member.
In VB5 both Len(MyType) and LenB(MyType) return 6. In fact, under VB5 these two values are different only when the UDT contains a fixed-length string: in this case, Len() considers the length that the string would have when converted to ANSI (such as when you store the UDT to a file), while LenB() considers the string in Unicode format.

In VB6 LenB has been modified and now returns the real size of the structure, including padding bytes: therefore LenB(MyType) returns 8 under VB6. If you aren't aware of this detail you might introduce subtle bugs when you port a VB5 app to VB6.





Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.