仅提供宽字符串逻辑字符串比较的动机

时间:2013-06-08 15:27:16

标签: c++ api winapi conventions

我一直困惑于此,但到目前为止,我还没有找到合适的理由。

Win32 API提供了一个“逻辑字符串比较”功能,原型为:

StrCmpLogicalW( _In_ PCWSTR psz1, _In_ PCWSTR psz2 );

此函数然后使用数字作为数字而不是纯文本,从而提供两个字符串的更“逻辑”比较。

但是,Win32 API中的大多数函数似乎都是typedef用于多字节或Unicode字符串,例如SendMessage是一个扩展为SendMessageW的Unicode用于Unicode或者SendMessageA用于ANSI编码(取决于启用哪个宏开关),那么为什么这个函数只有一个宽字符串版本?我在互联网上搜索过,但是找不到任何可以解释这一点的东西,所以如果有人能够启发我,我将不胜感激。

提前致谢!

1 个答案:

答案 0 :(得分:0)

文档说“这个函数的行为,因此返回的结果,可以在发布之间发生变化。它不应该用于规范排序应用程序。”所以它似乎不适合一般用途。