mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.3 KiB
54 lines
1.3 KiB
/*++
|
|
|
|
Module Name:
|
|
|
|
wcst.c - to verify a fix for "D0H" strings.
|
|
|
|
Abstract:
|
|
|
|
|
|
--*/
|
|
|
|
|
|
|
|
#include "local.h"
|
|
|
|
DWORD StringToDword( IN PWCHAR String)
|
|
/*++
|
|
We would like to use generic base (0) but it does not work for
|
|
strings like "D0H". That is the reason why we first check if
|
|
the last character is 'H' or 'h'.
|
|
--*/
|
|
{
|
|
DWORD Length;
|
|
|
|
Length = wcslen( String);
|
|
if ( Length == 0) {
|
|
return( 0);
|
|
}
|
|
if ( String[ Length-1] == L'H' || String[ Length-1] == L'h') {
|
|
return( wcstoul( String, NULL, 16));
|
|
} else {
|
|
return( wcstoul( String, NULL, 0));
|
|
}
|
|
}
|
|
|
|
void report ( IN PWCHAR String, IN DWORD Base)
|
|
{
|
|
PWCHAR End;
|
|
DWORD Number;
|
|
Number = wcstoul( String, &End, Base);
|
|
printf( "String = %ws, End = %ws, Base = %d, Number = 0x%x\n", String, End, Base, Number);
|
|
printf( "StringToDword(%ws)= 0x%x\n", String, StringToDword( String));
|
|
}
|
|
|
|
VOID _CRTAPI1 main ( VOID)
|
|
{
|
|
report( L"D0H", 0); // End = D0H, Number = 0x0
|
|
report( L"D0H", 16); // End = H, Number = 0xd0
|
|
report( L"D0", 0); // End = D0, Number = 0x0
|
|
report( L"D0", 16); // End = , Number = 0xd0
|
|
report( L"0xD0", 0); // End = , Number = 0xd0
|
|
report( L"0xD0", 16); // End = , Number = 0xd0
|
|
}
|
|
|