home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
vc98
/
crt
/
src
/
xtow.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-06-17
|
3KB
|
117 lines
/***
*xtow.c - convert integers/longs to wide char string
*
* Copyright (c) 1993-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
* The module has code to convert integers/longs to wide char strings.
*
*******************************************************************************/
#include <windows.h>
#include <stdlib.h>
#define INT_SIZE_LENGTH 20
#define LONG_SIZE_LENGTH 40
#define I64_SIZE_LENGTH 80
/***
*wchar_t *_itow, *_ltow, *_ultow(val, buf, radix) - convert binary int to wide
* char string
*
*Purpose:
* Converts an int to a wide character string.
*
*Entry:
* val - number to be converted (int, long or unsigned long)
* int radix - base to convert into
* wchar_t *buf - ptr to buffer to place result
*
*Exit:
* calls ASCII version to convert, converts ASCII to wide char into buf
* returns a pointer to this buffer
*
*Exceptions:
*
*******************************************************************************/
wchar_t * __cdecl _itow (
int val,
wchar_t *buf,
int radix
)
{
char astring[INT_SIZE_LENGTH];
_itoa (val, astring, radix);
MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED, astring, -1,
buf, INT_SIZE_LENGTH);
return (buf);
}
wchar_t * __cdecl _ltow (
long val,
wchar_t *buf,
int radix
)
{
char astring[LONG_SIZE_LENGTH];
_ltoa (val, astring, radix);
MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED, astring, -1,
buf, LONG_SIZE_LENGTH);
return (buf);
}
wchar_t * __cdecl _ultow (
unsigned long val,
wchar_t *buf,
int radix
)
{
char astring[LONG_SIZE_LENGTH];
_ultoa (val, astring, radix);
MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED, astring, -1,
buf, LONG_SIZE_LENGTH);
return (buf);
}
#ifndef _NO_INT64
wchar_t * __cdecl _i64tow (
__int64 val,
wchar_t *buf,
int radix
)
{
char astring[I64_SIZE_LENGTH];
_i64toa (val, astring, radix);
MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED, astring, -1,
buf, I64_SIZE_LENGTH);
return (buf);
}
wchar_t * __cdecl _ui64tow (
unsigned __int64 val,
wchar_t *buf,
int radix
)
{
char astring[I64_SIZE_LENGTH];
_ui64toa (val, astring, radix);
MultiByteToWideChar (CP_ACP, MB_PRECOMPOSED, astring, -1,
buf, I64_SIZE_LENGTH);
return (buf);
}
#endif /* _NO_INT64 */