我有一個使用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
然後不要使用它並使用區域設置感知比較函數! –