Bonjour à tou[te]s,

Je suis à la recherche de quelques informations relativement simples (pour qui connaît le monde dev Apple) concernant du code C pur et dur.

J'ai besoin de comparer sous Mac OS X et sous iOS deux chaînes Unicode UTF-16 NBO avec des options équivalentes (ou le plus proche possible) des appels Windows suivants :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
CompareStringEx(LOCALE_INVARIANT, NORM_IGNORECASE | NORM_IGNOREWIDTH | NORM_IGNOREKANATYPE | SORT_STRINGSORT, , wzstr1 pKey1, len1, wzstr2, len2)
 
CompareStringEx(LOCALE_INVARIANT, NORM_IGNORECASE | NORM_IGNORENONSPACE | NORM_IGNOREWIDTH | NORM_IGNOREKANATYPE | SORT_STRINGSORT, , wzstr1 pKey1, len1, wzstr2, len2)
 
CompareStringEx(LOCALE_INVARIANT, NORM_IGNORECASE | NORM_IGNORENONSPACE | NORM_IGNORESYMBOLS | NORM_IGNOREWIDTH | NORM_IGNOREKANATYPE, wzstr1 pKey1, len1, wzstr2, len2)
Pour info, la description des options employées est là : http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx.
Les chaînes ne sont pas des objets mais de simples chaînes C.
A défaut d'existence d'un équivalent à LOCALE_INVARIANT, comment précise-t-on la locale avec laquelle travailler ?
Je nage pour trouver ces infos.

Savez-vous comment compiler un source pur C (avec cette fois les appels Mac ou iOS) avec MinGW et gcc, qui est installé avec le support Obj-C ?

Pour info, ce code fait partie d'un module d'extension qui ajoute à SQLite des fonctions de traitement de chaînes Unicode (désaccentuation, changement de casse, recherche floue, ...) et de collation Unicode hors périmètre ICU. La bête fonctionne bien sous toutes version de Windows et ne demande que cet équivalent à CompareStringEx pour être disponible sous Mac et iOS.
Une archive contenant le source C et une DLL Win32 est accessible ici : http://dl.dropbox.com/u/26433628/unifuzz.zip.