我有一个使用C#和本地C++(MFC)的旧版应用程序。我需要对两边的字符串进行排序,以便它们的顺序相同。问题是,在.NET端使用string.Compare
它出现在“文化特定”的方式,例如,“A_B”在“A11”之前排序,而在MFC中,使用operator <
,“A11”在“A_B”之前排序”。在MFC与C中排序字符串#
我知道我可以改变.NET端使用序号排序,但这可能会打破一些外语排序。我想要的是改变MFC排序,以便按照“文化特定”的方式进行排序,如.NET方面。我在Win32 API中发现了CompareStringEx
,但是想知道是否有一个MFC解决方案或者我缺少的其他东西。
在此先感谢。
明显的问题:你用什么C++排序? std :: sort(或更好的std :: stable_sort)也接受一个比较函数对象。你可以使用语言环境感知_wcsicmp编写自己的_wcsicmp –
我正在使用CString操作符<(它使用_mbscmp') – edtheprogrammerguy
然后不要使用它并使用区域设置感知比较函数! –