开发者

Details on the Microsoft multi-string format

In some of its API function Microsoft use the "multi-string" format to specify a list of strings.

As I understand it, a multi-string is a null-terminated buffer of concatenated null-terminated strings. But this can also be interpreted as a list of strings, separated by a null character and terminated by two null characters.

Here comes an example. A list composed of the following items:

开发者_运维技巧
"apple", "banana", "orange"

Becomes:

apple\0banana\0orange\0\0

But now I wonder:

How would an empty list be represented ?

Would it be:

\0

Or:

\0\0

I failed to found an accurate documentation that clarifies this. Any clue ?


\0


It would be \0.

Raymond Chen describes how this works on his blog: the list of strings is terminated by an empty string. If the first string in the list is empty, the list itself is empty.


If you are working with these, many years ago, I wrote an STL style iterator which works on them:

http://noveltheory.com/iterators/Iterator_N3.htm

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜