C++ 仅提供宽字符串逻辑字符串比较的动机
我对此困惑了相当长一段时间,到目前为止,我还没有找到合适的理由 Win32 API提供了一个用于“逻辑字符串比较”的函数,其原型为:C++ 仅提供宽字符串逻辑字符串比较的动机,c++,api,winapi,conventions,C++,Api,Winapi,Conventions,我对此困惑了相当长一段时间,到目前为止,我还没有找到合适的理由 Win32 API提供了一个用于“逻辑字符串比较”的函数,其原型为: StrCmpLogicalW( _In_ PCWSTR psz1, _In_ PCWSTR psz2 ); 然后,此函数将数字用作数字而不是纯文本,从而提供两个字符串的更“逻辑”的比较 但是,Win32 API中的大多数函数似乎都是typedef'd,用于多字节或Unicode字符串,例如SendMessage是一个宏,对于Unicode,它扩展为SendMes
StrCmpLogicalW( _In_ PCWSTR psz1, _In_ PCWSTR psz2 );
然后,此函数将数字用作数字而不是纯文本,从而提供两个字符串的更“逻辑”的比较
但是,Win32 API中的大多数函数似乎都是typedef
'd,用于多字节或Unicode字符串,例如SendMessage
是一个宏,对于Unicode,它扩展为SendMessageW
,对于ANSI编码,它扩展为SendMessageA
(取决于启用的宏开关),那么为什么这个函数只有宽字符串版本呢?我在网上搜索过,但找不到任何解释,所以如果有人能给我启发,我将不胜感激
提前谢谢 文档中说“这个函数的行为,以及它返回的结果,可能会随着版本的不同而变化。它不应该用于规范的排序应用程序。”因此它似乎不适合一般使用