VB4 introduces the use of double-byte characters. Most of this is transparentto the programmer and requires no special consideration. When calling APIfunctions or reading/writing to a file VB will handle the conversion foryou automatically. However, there may be times when you want to force a condition thatgoes against VB’s will. For example, you might want to write Unicode toa file, pass a Unicode string to a function, or receive a Unicode stringfrom a routine. In these cases you will have to use VB4’s new Byte declaration.A String Byte can vary between one or two bytes depending upon how it isused. A Byte-byte is exactly that: one byte. To convert a string variable into a byte array, use this code:
Redim MyByteArray(0 to len(MyString$)-1) as ByteMyByteArray() = StrConv(MyString$, vbFromUniCode)
To convert a byte array to a string:
MyString$ = StrConv(BA(), vbUniCode)
Due to a bug or design limitation, VB4 does not allow you to converta string to a binary array that is part of a Type structure. For example:
TYPE MyByteType Bytes( 0 to 255) as ByteEND TYPEDim MBA as MhByteTypeMBA.Bytes() = StrConv(MyString$, vbFromUniCode)
returns an error. However,
MyString$ = StrConv(MBA.Bytes() , vbUniCode)
works as expected.