15 #ifdef NO_WCHAR_SUPPORT 18 #define _tcslen strlen 19 #define _tcscpy strcpy 20 #define _tcscmp strcmp 21 #define _tcsicmp strcasecmp 25 #define _tcslen wcslen 26 #define _tcscpy wcscpy 27 #define _tcscmp wcscmp 28 #define _tcsicmp wcsicmp 35 inline int wtoi(
const wchar_t* ipStr)
37 return ::_wtoi(ipStr);
40 inline wchar_t* wcstok(
wchar_t* ws1,
const wchar_t* ws2,
wchar_t** ptr)
45 return (ptr != 0) ? ::wcstok_s(ws1, ws2, ptr) : 0;
53 inline int stricmp(
const char* s1,
const char* s2)
55 return ::strcasecmp(s1, s2);
58 inline int wcsicmp(
const wchar_t* s1,
const wchar_t* s2)
60 return ::wscasecmp(s1, s2);
63 inline int strnicmp(
const char* s1,
const char* s2,
int n)
65 return ::strncasecmp(s1, s2, n);
68 inline int wcsnicmp(
const wchar_t* s1,
const wchar_t* s2,
int n)
70 return ::wsncasecmp(s1, s2, n);
73 inline wchar_t* wcslwr(
wchar_t*
string)
75 for (
wchar_t* lpStr =
string; *lpStr != L
'\0'; ++lpStr)
77 *lpStr = ::towlower(*lpStr);
83 inline int wtoi(
const wchar_t*
string)
95 inline int stricmp(
const char* s1,
const char* s2)
97 return ::strcasecmp(s1, s2);
99 #ifndef NO_WCHAR_SUPPORT 100 inline int wcsicmp(
const wchar_t* s1,
const wchar_t* s2)
102 return ::wcscasecmp(s1, s2);
105 inline int strnicmp(
const char* s1,
const char* s2,
int n)
107 return ::strncasecmp(s1, s2, n);
109 #ifndef NO_WCHAR_SUPPORT 110 inline int wcsnicmp(
const wchar_t* s1,
const wchar_t* s2,
int n)
112 return ::wcsncasecmp(s1, s2, n);
115 inline wchar_t* wcslwr(
wchar_t*
string)
117 for (
wchar_t* lpStr =
string; *lpStr != L
'\0'; ++lpStr)
119 *lpStr = ::towlower(*lpStr);
125 inline int wtoi(
const wchar_t*
string)
127 return wcstol(
string, (
wchar_t **)0, 10);
141 inline int stricmp(
const char* s1,
const char* s2)
143 return ::strcasecmp(s1, s2);
146 inline int wcsicmp(
const wchar_t* s1,
const wchar_t* s2)
148 return ::wcscasecmp(s1, s2);
151 inline int strnicmp(
const char* s1,
const char* s2,
int n)
153 return ::strncasecmp(s1, s2, n);
156 inline int wcsnicmp(
const wchar_t* s1,
const wchar_t* s2,
int n)
158 return ::wcsncasecmp(s1, s2, n);
161 inline wchar_t* wcslwr(
wchar_t*
string)
163 for (
wchar_t* lpStr =
string; *lpStr != L
'\0'; ++lpStr)
165 *lpStr = ::towlower(*lpStr);
171 inline int wtoi(
const wchar_t*
string)
173 return watoi(const_cast<wchar_t*>(
string));
176 #elif defined (__hpux) 183 inline int stricmp(
const char* s1,
const char* s2)
185 return ::strcasecmp(s1, s2);
188 inline wchar_t* wcslwr(
wchar_t*
string)
190 for (
wchar_t* lpStr =
string; *lpStr != L
'\0'; ++lpStr)
192 *lpStr = ::towlower(*lpStr);
198 inline int wcsicmp(
const wchar_t* s1,
const wchar_t* s2)
201 wchar_t* s1_1 =
new wchar_t[wcslen(s1) + 1];
202 wchar_t* s2_1 =
new wchar_t[wcslen(s2) + 1];
207 wcslcpy(s1_1, wcslen(s1) + 1, s1);
208 wcslcpy(s2_1, wcslen(s2) + 1, s2);
209 lRet = ::wcscmp(wcslwr(s1_1), wcslwr(s2_1) );
219 inline int strnicmp(
const char* s1,
const char* s2,
int n)
221 return ::strncasecmp(s1, s2, n);
224 inline int wcsnicmp(
const wchar_t* s1,
const wchar_t* s2,
int n)
226 wchar_t* s1_1 =
new wchar_t[wcslen(s1) + 1];
227 wchar_t* s2_1 =
new wchar_t[wcslen(s2) + 1];
232 wcslcpy(s1_1, wcslen(s1) + 1, s1);
233 wcslcpy(s2_1, wcslen(s2) + 1, s2);
234 lRet = ::wcsncmp(wcslwr(s1_1), wcslwr(s2_1), n);
244 inline int wtoi(
const wchar_t*
string)
246 return wcstol(
string, (
wchar_t **)0, 10);
255 inline int stricmp(
const char* s1,
const char* s2)
257 return ::strcasecmp(s1, s2);
260 inline int wcsicmp(
const wchar_t* s1,
const wchar_t* s2)
262 return ::wcscasecmp(s1, s2);
265 inline int strnicmp(
const char* s1,
const char* s2,
int n)
267 return ::strncasecmp(s1, s2, n);
270 inline int wcsnicmp(
const wchar_t* s1,
const wchar_t* s2,
int n)
272 return ::wcsncasecmp(s1, s2, n);
275 inline wchar_t* wcslwr(
wchar_t*
string)
277 for (
wchar_t* lpStr =
string; *lpStr != L
'\0'; ++lpStr)
279 *lpStr = ::towlower(*lpStr);
285 inline int wtoi(
const wchar_t*
string)
287 return (
int)wcstol(
string, (
wchar_t **)0, 10);
293 #if !defined(WIN32) && defined(WIN64) 320 inline errno_t wcscat_s(
wchar_t *strDestination,
size_t sizeInWords,
const wchar_t *strSource)
325 ::wcscat(strDestination,strSource);
346 inline errno_t wcscpy_s(
wchar_t *strDestination,
size_t sizeInWords,
const wchar_t *strSource)
351 ::wcscpy(strDestination,strSource);
375 inline errno_t wcsncat_s(
wchar_t *strDestination,
size_t sizeInWords,
const wchar_t *strSource,
size_t count)
380 ::wcsncat(strDestination,strSource,count);
403 inline errno_t wcsncpy_s(
wchar_t *strDestination,
size_t sizeInWords,
const wchar_t *strSource,
size_t count)
407 size_t len=(count>wcslen(strSource)?wcslen(strSource):count);
409 ::wcsncpy(strDestination,strSource,
len);
410 strDestination[
len]=(L
'\0');
wchar_t WCHAR
Definition: PDCwchar.h:23
#define _VALIDATE_RETURN_ERRCODE(expr, errorcode)
Definition: PDCerrno.h:21
UINT len
Definition: Msi_bstr.h:37
#define NULL
Definition: Null.h:10