You ask this question because you do not understand basic things.
First you need to understand what a regular line is. 
You see the pointer = 4 bytes, which actually indicate an array of data.
strlen () - works like this, it runs through the array and searches for \ 0 (end of line), i.e. strlen () is simply a function of counting elements.
Further more interesting ..
If you are talking about unicode. So his structure is completely different.
Usually an auxiliary class is used, such as CString. Its structure is approximately as follows.

char (for ANSI character strings).
wchar_t (for character strings in unicode).
TCHAR (for ANSI and Unicode character strings).
Those. see what? These are completely different structures. And they have a different function. For wchar_t (unicode), use wslen () like so what is called ..
By the way, the compiler also has a directive in the settings. What type will be the default ansi or unicode. I advise you to put unicode.
About your example.
It was originally made crooked. Most likely you either get a string from the socket, or read from the file.
Read into the buffer, and immediately into a normal structure, some kind of CString.