Name change
This commit is contained in:
parent
0bbe4c4b82
commit
4d79b6ce19
|
@ -1,12 +1,12 @@
|
|||
PCHAR CaplockStringA(PCHAR Ptr)
|
||||
{
|
||||
PCHAR sv = Ptr;
|
||||
while (*sv != '\0')
|
||||
{
|
||||
if (*sv >= 'a' && *sv <= 'z')
|
||||
*sv = *sv - ('a' - 'A');
|
||||
|
||||
sv++;
|
||||
}
|
||||
return Ptr;
|
||||
}
|
||||
PCHAR CaplockStringA(PCHAR Ptr)
|
||||
{
|
||||
PCHAR sv = Ptr;
|
||||
while (*sv != '\0')
|
||||
{
|
||||
if (*sv >= 'a' && *sv <= 'z')
|
||||
*sv = *sv - ('a' - 'A');
|
||||
|
||||
sv++;
|
||||
}
|
||||
return Ptr;
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
PWCHAR CaplockStringW(PWCHAR Ptr)
|
||||
{
|
||||
PWCHAR sv = Ptr;
|
||||
while (*sv != '\0')
|
||||
{
|
||||
if (*sv >= 'a' && *sv <= 'z')
|
||||
*sv = *sv - ('a' - 'A');
|
||||
|
||||
sv++;
|
||||
}
|
||||
return Ptr;
|
||||
}
|
||||
PWCHAR CaplockStringW(PWCHAR Ptr)
|
||||
{
|
||||
PWCHAR sv = Ptr;
|
||||
while (*sv != '\0')
|
||||
{
|
||||
if (*sv >= 'a' && *sv <= 'z')
|
||||
*sv = *sv - ('a' - 'A');
|
||||
|
||||
sv++;
|
||||
}
|
||||
return Ptr;
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
VOID CharArrayToByteArrayA(PCHAR Char, PBYTE Byte, DWORD Length)
|
||||
{
|
||||
for (DWORD dwX = 0; dwX < Length; dwX++)
|
||||
{
|
||||
Byte[dwX] = (BYTE)Char[dwX];
|
||||
}
|
||||
}
|
||||
VOID CharArrayToByteArrayA(PCHAR Char, PBYTE Byte, DWORD Length)
|
||||
{
|
||||
for (DWORD dwX = 0; dwX < Length; dwX++)
|
||||
{
|
||||
Byte[dwX] = (BYTE)Char[dwX];
|
||||
}
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
VOID CharArrayToByteArrayW(PWCHAR Char, PBYTE Byte, DWORD Length)
|
||||
{
|
||||
for (DWORD dwX = 0; dwX < Length; dwX++)
|
||||
{
|
||||
Byte[dwX] = (BYTE)Char[dwX];
|
||||
}
|
||||
VOID CharArrayToByteArrayW(PWCHAR Char, PBYTE Byte, DWORD Length)
|
||||
{
|
||||
for (DWORD dwX = 0; dwX < Length; dwX++)
|
||||
{
|
||||
Byte[dwX] = (BYTE)Char[dwX];
|
||||
}
|
||||
}
|
|
@ -1,34 +1,34 @@
|
|||
#include <windows.h>
|
||||
|
||||
SIZE_T StringLengthA(LPCSTR String)
|
||||
{
|
||||
LPCSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
SIZE_T CharStringToWCharString(PWCHAR Destination, PCHAR Source, SIZE_T MaximumAllowed)
|
||||
{
|
||||
INT Length = MaximumAllowed;
|
||||
|
||||
while (--Length >= 0)
|
||||
{
|
||||
if (!(*Destination++ = *Source++))
|
||||
return MaximumAllowed - Length - 1;
|
||||
}
|
||||
|
||||
return MaximumAllowed - Length;
|
||||
}
|
||||
|
||||
INT main(VOID)
|
||||
{
|
||||
WCHAR Path[MAX_PATH * sizeof(WCHAR)] = { 0 };
|
||||
CHAR CharPath[MAX_PATH] = "\\Users\\Tmp\\Desktop\\";
|
||||
|
||||
if(CharStringToWCharString(&Path, CharPath, StringLengthA(CharPath)) == 0)
|
||||
return 1;
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
#include <windows.h>
|
||||
|
||||
SIZE_T StringLengthA(LPCSTR String)
|
||||
{
|
||||
LPCSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
SIZE_T CharStringToWCharString(PWCHAR Destination, PCHAR Source, SIZE_T MaximumAllowed)
|
||||
{
|
||||
INT Length = MaximumAllowed;
|
||||
|
||||
while (--Length >= 0)
|
||||
{
|
||||
if (!(*Destination++ = *Source++))
|
||||
return MaximumAllowed - Length - 1;
|
||||
}
|
||||
|
||||
return MaximumAllowed - Length;
|
||||
}
|
||||
|
||||
INT main(VOID)
|
||||
{
|
||||
WCHAR Path[MAX_PATH * sizeof(WCHAR)] = { 0 };
|
||||
CHAR CharPath[MAX_PATH] = "\\Users\\Tmp\\Desktop\\";
|
||||
|
||||
if(CharStringToWCharString(&Path, CharPath, StringLengthA(CharPath)) == 0)
|
||||
return 1;
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
|
@ -1,10 +1,10 @@
|
|||
PVOID CopyMemory(PVOID Destination, CONST PVOID Source, SIZE_T Length)
|
||||
{
|
||||
PBYTE D = (PBYTE)Destination;
|
||||
PBYTE S = (PBYTE)Source;
|
||||
|
||||
while (Length--)
|
||||
*D++ = *S++;
|
||||
|
||||
return Destination;
|
||||
}
|
||||
PVOID CopyMemory(PVOID Destination, CONST PVOID Source, SIZE_T Length)
|
||||
{
|
||||
PBYTE D = (PBYTE)Destination;
|
||||
PBYTE S = (PBYTE)Source;
|
||||
|
||||
while (Length--)
|
||||
*D++ = *S++;
|
||||
|
||||
return Destination;
|
||||
}
|
|
@ -1,11 +1,11 @@
|
|||
DWORD DecimalToAsciiA(PCHAR String, LPDWORD dwArray, DWORD dwLength)
|
||||
{
|
||||
DWORD dwX = ERROR_SUCCESS;
|
||||
|
||||
if (String == NULL)
|
||||
return dwX;
|
||||
|
||||
for (; dwX < dwLength; dwX++) { String[dwX] = (CHAR)dwArray[dwX]; }
|
||||
|
||||
return dwX;
|
||||
}
|
||||
DWORD DecimalToAsciiA(PCHAR String, LPDWORD dwArray, DWORD dwLength)
|
||||
{
|
||||
DWORD dwX = ERROR_SUCCESS;
|
||||
|
||||
if (String == NULL)
|
||||
return dwX;
|
||||
|
||||
for (; dwX < dwLength; dwX++) { String[dwX] = (CHAR)dwArray[dwX]; }
|
||||
|
||||
return dwX;
|
||||
}
|
|
@ -1,11 +1,11 @@
|
|||
DWORD DecimalToAsciiW(PWCHAR String, LPDWORD dwArray, DWORD dwLength)
|
||||
{
|
||||
DWORD dwX = ERROR_SUCCESS;
|
||||
|
||||
if (String == NULL)
|
||||
return dwX;
|
||||
|
||||
for (; dwX < dwLength; dwX++) { String[dwX] = (WCHAR)dwArray[dwX]; }
|
||||
|
||||
return dwX;
|
||||
DWORD DecimalToAsciiW(PWCHAR String, LPDWORD dwArray, DWORD dwLength)
|
||||
{
|
||||
DWORD dwX = ERROR_SUCCESS;
|
||||
|
||||
if (String == NULL)
|
||||
return dwX;
|
||||
|
||||
for (; dwX < dwLength; dwX++) { String[dwX] = (WCHAR)dwArray[dwX]; }
|
||||
|
||||
return dwX;
|
||||
}
|
|
@ -1,7 +1,7 @@
|
|||
INT PseudoRandomInteger(VOID)
|
||||
{
|
||||
static unsigned long int OffsetNext = 1;
|
||||
|
||||
OffsetNext = OffsetNext * 1103515245 + 12345;
|
||||
return (DWORD32)(OffsetNext / 65536) % 32768;
|
||||
}
|
||||
INT PseudoRandomInteger(VOID)
|
||||
{
|
||||
static unsigned long int OffsetNext = 1;
|
||||
|
||||
OffsetNext = OffsetNext * 1103515245 + 12345;
|
||||
return (DWORD32)(OffsetNext / 65536) % 32768;
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
PCHAR SecureStringCopyAltA(PCHAR String1, LPCSTR String2, SIZE_T Size)
|
||||
{
|
||||
PCHAR pChar = String1;
|
||||
|
||||
while (Size-- && (*String1++ = *String2++) != '\0');
|
||||
|
||||
return pChar;
|
||||
}
|
||||
PCHAR SecureStringCopyAltA(PCHAR String1, LPCSTR String2, SIZE_T Size)
|
||||
{
|
||||
PCHAR pChar = String1;
|
||||
|
||||
while (Size-- && (*String1++ = *String2++) != '\0');
|
||||
|
||||
return pChar;
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
PWCHAR SecureStringCopyAltW(PWCHAR String1, LPCWSTR String2, SIZE_T Size)
|
||||
{
|
||||
PWCHAR pChar = String1;
|
||||
|
||||
while (Size-- && (*String1++ = *String2++) != '\0');
|
||||
|
||||
return pChar;
|
||||
}
|
||||
PWCHAR SecureStringCopyAltW(PWCHAR String1, LPCWSTR String2, SIZE_T Size)
|
||||
{
|
||||
PWCHAR pChar = String1;
|
||||
|
||||
while (Size-- && (*String1++ = *String2++) != '\0');
|
||||
|
||||
return pChar;
|
||||
}
|
|
@ -1,10 +1,10 @@
|
|||
INT StringCompareA(LPCSTR String1, LPCSTR String2)
|
||||
{
|
||||
for (; *String1 == *String2; String1++, String2++)
|
||||
{
|
||||
if (*String1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ((*(LPCSTR)String1 < *(LPCSTR)String2) ? -1 : +1);
|
||||
}
|
||||
INT StringCompareA(LPCSTR String1, LPCSTR String2)
|
||||
{
|
||||
for (; *String1 == *String2; String1++, String2++)
|
||||
{
|
||||
if (*String1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ((*(LPCSTR)String1 < *(LPCSTR)String2) ? -1 : +1);
|
||||
}
|
|
@ -1,10 +1,10 @@
|
|||
INT StringCompareW(LPCWSTR String1, LPCWSTR String2)
|
||||
{
|
||||
for (; *String1 == *String2; String1++, String2++)
|
||||
{
|
||||
if (*String1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ((*(LPCWSTR)String1 < *(LPCWSTR)String2) ? -1 : +1);
|
||||
}
|
||||
INT StringCompareW(LPCWSTR String1, LPCWSTR String2)
|
||||
{
|
||||
for (; *String1 == *String2; String1++, String2++)
|
||||
{
|
||||
if (*String1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return ((*(LPCWSTR)String1 < *(LPCWSTR)String2) ? -1 : +1);
|
||||
}
|
|
@ -1,17 +1,17 @@
|
|||
INT StringCompareStringRegionA(PCHAR String1, PCHAR String2, SIZE_T Count)
|
||||
{
|
||||
UCHAR Block1, Block2;
|
||||
while (Count-- > 0)
|
||||
{
|
||||
Block1 = (UCHAR)*String1++;
|
||||
Block2 = (UCHAR)*String2++;
|
||||
|
||||
if (Block1 != Block2)
|
||||
return Block1 - Block2;
|
||||
|
||||
if (Block1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
INT StringCompareStringRegionA(PCHAR String1, PCHAR String2, SIZE_T Count)
|
||||
{
|
||||
UCHAR Block1, Block2;
|
||||
while (Count-- > 0)
|
||||
{
|
||||
Block1 = (UCHAR)*String1++;
|
||||
Block2 = (UCHAR)*String2++;
|
||||
|
||||
if (Block1 != Block2)
|
||||
return Block1 - Block2;
|
||||
|
||||
if (Block1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,17 +1,17 @@
|
|||
INT StringCompareStringRegionW(PWCHAR String1, PWCHAR String2, SIZE_T Count)
|
||||
{
|
||||
UCHAR Block1, Block2;
|
||||
while (Count-- > 0)
|
||||
{
|
||||
Block1 = (UCHAR)*String1++;
|
||||
Block2 = (UCHAR)*String2++;
|
||||
|
||||
if (Block1 != Block2)
|
||||
return Block1 - Block2;
|
||||
|
||||
if (Block1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
INT StringCompareStringRegionW(PWCHAR String1, PWCHAR String2, SIZE_T Count)
|
||||
{
|
||||
UCHAR Block1, Block2;
|
||||
while (Count-- > 0)
|
||||
{
|
||||
Block1 = (UCHAR)*String1++;
|
||||
Block2 = (UCHAR)*String2++;
|
||||
|
||||
if (Block1 != Block2)
|
||||
return Block1 - Block2;
|
||||
|
||||
if (Block1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -1,24 +1,24 @@
|
|||
SIZE_T StringLengthA(LPCSTR String)
|
||||
{
|
||||
LPCSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
PCHAR StringCopyA(PCHAR String1, PCHAR String2)
|
||||
{
|
||||
PCHAR p = String1;
|
||||
|
||||
while ((*p++ = *String2++) != 0);
|
||||
|
||||
return String1;
|
||||
}
|
||||
|
||||
PCHAR StringConcatA(PCHAR String, PCHAR String2)
|
||||
{
|
||||
StringCopyA(&String[StringLengthA(String)], String2);
|
||||
|
||||
return String;
|
||||
}
|
||||
SIZE_T StringLengthA(LPCSTR String)
|
||||
{
|
||||
LPCSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
PCHAR StringCopyA(PCHAR String1, PCHAR String2)
|
||||
{
|
||||
PCHAR p = String1;
|
||||
|
||||
while ((*p++ = *String2++) != 0);
|
||||
|
||||
return String1;
|
||||
}
|
||||
|
||||
PCHAR StringConcatA(PCHAR String, PCHAR String2)
|
||||
{
|
||||
StringCopyA(&String[StringLengthA(String)], String2);
|
||||
|
||||
return String;
|
||||
}
|
|
@ -1,24 +1,24 @@
|
|||
SIZE_T StringLengthW(LPCWSTR String)
|
||||
{
|
||||
LPCWSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
PWCHAR StringCopyW(PWCHAR String1, PWCHAR String2)
|
||||
{
|
||||
PWCHAR p = String1;
|
||||
|
||||
while ((*p++ = *String2++) != 0);
|
||||
|
||||
return String1;
|
||||
}
|
||||
|
||||
PWCHAR StringConcatW(PWCHAR String, PWCHAR String2)
|
||||
{
|
||||
StringCopyW(&String[StringLength(String)], String2);
|
||||
|
||||
return String;
|
||||
}
|
||||
SIZE_T StringLengthW(LPCWSTR String)
|
||||
{
|
||||
LPCWSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
PWCHAR StringCopyW(PWCHAR String1, PWCHAR String2)
|
||||
{
|
||||
PWCHAR p = String1;
|
||||
|
||||
while ((*p++ = *String2++) != 0);
|
||||
|
||||
return String1;
|
||||
}
|
||||
|
||||
PWCHAR StringConcatW(PWCHAR String, PWCHAR String2)
|
||||
{
|
||||
StringCopyW(&String[StringLength(String)], String2);
|
||||
|
||||
return String;
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
PCHAR StringCopyA(PCHAR String1, PCHAR String2)
|
||||
{
|
||||
PCHAR p = String1;
|
||||
|
||||
while ((*p++ = *String2++) != 0);
|
||||
|
||||
return String1;
|
||||
}
|
||||
PCHAR StringCopyA(PCHAR String1, PCHAR String2)
|
||||
{
|
||||
PCHAR p = String1;
|
||||
|
||||
while ((*p++ = *String2++) != 0);
|
||||
|
||||
return String1;
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
PWCHAR StringCopyW(PWCHAR String1, PWCHAR String2)
|
||||
{
|
||||
PWCHAR p = String1;
|
||||
|
||||
while ((*p++ = *String2++) != 0);
|
||||
|
||||
return String1;
|
||||
}
|
||||
PWCHAR StringCopyW(PWCHAR String1, PWCHAR String2)
|
||||
{
|
||||
PWCHAR p = String1;
|
||||
|
||||
while ((*p++ = *String2++) != 0);
|
||||
|
||||
return String1;
|
||||
}
|
|
@ -1,52 +1,52 @@
|
|||
SIZE_T StringLengthA(LPCSTR String)
|
||||
{
|
||||
LPCSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
PCHAR StringLocateCharA(PCHAR String, INT Character)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (*String == Character)
|
||||
return (PCHAR)String;
|
||||
|
||||
} while (*String++);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
INT StringCompareStringRegionA(PCHAR String1, PCHAR String2, SIZE_T Count)
|
||||
{
|
||||
UCHAR Block1, Block2;
|
||||
while (Count-- > 0)
|
||||
{
|
||||
Block1 = (UCHAR)*String1++;
|
||||
Block2 = (UCHAR)*String2++;
|
||||
|
||||
if (Block1 != Block2)
|
||||
return Block1 - Block2;
|
||||
|
||||
if (Block1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
PCHAR StringFindSubstringA(PCHAR String1, PCHAR String2)
|
||||
{
|
||||
PCHAR pPointer = String1;
|
||||
DWORD Length = (DWORD)StringLengthA(String2);
|
||||
|
||||
for (; (pPointer = StringLocateCharA(pPointer, *String2)) != 0; pPointer++)
|
||||
{
|
||||
if (StringCompareStringRegionA(pPointer, String2, Length) == 0)
|
||||
return (PCHAR)pPointer;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
SIZE_T StringLengthA(LPCSTR String)
|
||||
{
|
||||
LPCSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
PCHAR StringLocateCharA(PCHAR String, INT Character)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (*String == Character)
|
||||
return (PCHAR)String;
|
||||
|
||||
} while (*String++);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
INT StringCompareStringRegionA(PCHAR String1, PCHAR String2, SIZE_T Count)
|
||||
{
|
||||
UCHAR Block1, Block2;
|
||||
while (Count-- > 0)
|
||||
{
|
||||
Block1 = (UCHAR)*String1++;
|
||||
Block2 = (UCHAR)*String2++;
|
||||
|
||||
if (Block1 != Block2)
|
||||
return Block1 - Block2;
|
||||
|
||||
if (Block1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
PCHAR StringFindSubstringA(PCHAR String1, PCHAR String2)
|
||||
{
|
||||
PCHAR pPointer = String1;
|
||||
DWORD Length = (DWORD)StringLengthA(String2);
|
||||
|
||||
for (; (pPointer = StringLocateCharA(pPointer, *String2)) != 0; pPointer++)
|
||||
{
|
||||
if (StringCompareStringRegionA(pPointer, String2, Length) == 0)
|
||||
return (PCHAR)pPointer;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
|
@ -1,52 +1,52 @@
|
|||
SIZE_T StringLengthW(LPCWSTR String)
|
||||
{
|
||||
LPCWSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
PWCHAR StringLocateCharW(PWCHAR String, INT Character)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (*String == Character)
|
||||
return (PWCHAR)String;
|
||||
|
||||
} while (*String++);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
INT StringCompareStringRegionW(PWCHAR String1, PWCHAR String2, SIZE_T Count)
|
||||
{
|
||||
UCHAR Block1, Block2;
|
||||
while (Count-- > 0)
|
||||
{
|
||||
Block1 = (UCHAR)*String1++;
|
||||
Block2 = (UCHAR)*String2++;
|
||||
|
||||
if (Block1 != Block2)
|
||||
return Block1 - Block2;
|
||||
|
||||
if (Block1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
PWCHAR StringFindSubstringW(PWCHAR String1, PWCHAR String2)
|
||||
{
|
||||
PWCHAR pPointer = String1;
|
||||
DWORD Length = (DWORD)StringLengthW(String2);
|
||||
|
||||
for (; (pPointer = StringLocateCharW(pPointer, *String2)) != 0; pPointer++)
|
||||
{
|
||||
if (StringCompareStringRegionW(pPointer, String2, Length) == 0)
|
||||
return (PWCHAR)pPointer;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
SIZE_T StringLengthW(LPCWSTR String)
|
||||
{
|
||||
LPCWSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
PWCHAR StringLocateCharW(PWCHAR String, INT Character)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (*String == Character)
|
||||
return (PWCHAR)String;
|
||||
|
||||
} while (*String++);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
INT StringCompareStringRegionW(PWCHAR String1, PWCHAR String2, SIZE_T Count)
|
||||
{
|
||||
UCHAR Block1, Block2;
|
||||
while (Count-- > 0)
|
||||
{
|
||||
Block1 = (UCHAR)*String1++;
|
||||
Block2 = (UCHAR)*String2++;
|
||||
|
||||
if (Block1 != Block2)
|
||||
return Block1 - Block2;
|
||||
|
||||
if (Block1 == '\0')
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
PWCHAR StringFindSubstringW(PWCHAR String1, PWCHAR String2)
|
||||
{
|
||||
PWCHAR pPointer = String1;
|
||||
DWORD Length = (DWORD)StringLengthW(String2);
|
||||
|
||||
for (; (pPointer = StringLocateCharW(pPointer, *String2)) != 0; pPointer++)
|
||||
{
|
||||
if (StringCompareStringRegionW(pPointer, String2, Length) == 0)
|
||||
return (PWCHAR)pPointer;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
|
@ -1,8 +1,8 @@
|
|||
SIZE_T StringLengthA(LPCSTR String)
|
||||
{
|
||||
LPCSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
SIZE_T StringLengthA(LPCSTR String)
|
||||
{
|
||||
LPCSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
SIZE_T StringLengthW(LPCWSTR String)
|
||||
{
|
||||
LPCWSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
SIZE_T StringLengthW(LPCWSTR String)
|
||||
{
|
||||
LPCWSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
PCHAR StringLocateCharA(PCHAR String, INT Character)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (*String == Character)
|
||||
return (PCHAR)String;
|
||||
|
||||
} while (*String++);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
PCHAR StringLocateCharA(PCHAR String, INT Character)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (*String == Character)
|
||||
return (PCHAR)String;
|
||||
|
||||
} while (*String++);
|
||||
|
||||
return NULL;
|
||||
}
|
|
@ -1,11 +1,11 @@
|
|||
PWCHAR StringLocateCharW(PWCHAR String, INT Character)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (*String == Character)
|
||||
return (PWCHAR)String;
|
||||
|
||||
} while (*String++);
|
||||
|
||||
return NULL;
|
||||
PWCHAR StringLocateCharW(PWCHAR String, INT Character)
|
||||
{
|
||||
do
|
||||
{
|
||||
if (*String == Character)
|
||||
return (PWCHAR)String;
|
||||
|
||||
} while (*String++);
|
||||
|
||||
return NULL;
|
||||
}
|
|
@ -1,13 +1,13 @@
|
|||
PCHAR StringRemoveSubstringA(PCHAR String, CONST PCHAR Substring)
|
||||
{
|
||||
DWORD Length = (DWORD)StringLengthA(Substring);
|
||||
PCHAR pPointer = String;
|
||||
|
||||
if (Length == 0)
|
||||
return NULL;
|
||||
|
||||
while ((pPointer = StringFindSubstringA(pPointer, Substring)) != NULL)
|
||||
MoveMemory(pPointer, pPointer + Length, StringLengthA(pPointer + Length) + 1);
|
||||
|
||||
return String;
|
||||
}
|
||||
PCHAR StringRemoveSubstringA(PCHAR String, CONST PCHAR Substring)
|
||||
{
|
||||
DWORD Length = (DWORD)StringLengthA(Substring);
|
||||
PCHAR pPointer = String;
|
||||
|
||||
if (Length == 0)
|
||||
return NULL;
|
||||
|
||||
while ((pPointer = StringFindSubstringA(pPointer, Substring)) != NULL)
|
||||
MoveMemory(pPointer, pPointer + Length, StringLengthA(pPointer + Length) + 1);
|
||||
|
||||
return String;
|
||||
}
|
|
@ -1,13 +1,13 @@
|
|||
PWCHAR StringRemoveSubstringW(PWCHAR String, CONST PWCHAR Substring)
|
||||
{
|
||||
DWORD Length = (DWORD)StringLengthW(Substring);
|
||||
PWCHAR pPointer = String;
|
||||
|
||||
if (Length == 0)
|
||||
return NULL;
|
||||
|
||||
while ((pPointer = StringFindSubstringW(pPointer, Substring)) != NULL)
|
||||
MoveMemory(pPointer, pPointer + Length, StringLengthW(pPointer + Length) + 1);
|
||||
|
||||
return String;
|
||||
PWCHAR StringRemoveSubstringW(PWCHAR String, CONST PWCHAR Substring)
|
||||
{
|
||||
DWORD Length = (DWORD)StringLengthW(Substring);
|
||||
PWCHAR pPointer = String;
|
||||
|
||||
if (Length == 0)
|
||||
return NULL;
|
||||
|
||||
while ((pPointer = StringFindSubstringW(pPointer, Substring)) != NULL)
|
||||
MoveMemory(pPointer, pPointer + Length, StringLengthW(pPointer + Length) + 1);
|
||||
|
||||
return String;
|
||||
}
|
|
@ -1,16 +1,16 @@
|
|||
PCHAR StringTerminateStringAtCharA(PCHAR String, INT Character)
|
||||
{
|
||||
DWORD Length = (DWORD)StringLengthA(String);
|
||||
|
||||
for (DWORD Index = 0; Index < Length; Index++)
|
||||
{
|
||||
if (String[Index] == Character)
|
||||
{
|
||||
String[Index] = '\0';
|
||||
return String;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
PCHAR StringTerminateStringAtCharA(PCHAR String, INT Character)
|
||||
{
|
||||
DWORD Length = (DWORD)StringLengthA(String);
|
||||
|
||||
for (DWORD Index = 0; Index < Length; Index++)
|
||||
{
|
||||
if (String[Index] == Character)
|
||||
{
|
||||
String[Index] = '\0';
|
||||
return String;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
PWCHAR StringTerminateStringAtCharW(PWCHAR String, INT Character)
|
||||
{
|
||||
DWORD Length = (DWORD)StringLengthW(String);
|
||||
|
||||
for (DWORD Index = 0; Index < Length; Index++)
|
||||
{
|
||||
if (String[Index] == Character)
|
||||
{
|
||||
String[Index] = '\0';
|
||||
return String;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
PWCHAR StringTerminateStringAtCharW(PWCHAR String, INT Character)
|
||||
{
|
||||
DWORD Length = (DWORD)StringLengthW(String);
|
||||
|
||||
for (DWORD Index = 0; Index < Length; Index++)
|
||||
{
|
||||
if (String[Index] == Character)
|
||||
{
|
||||
String[Index] = '\0';
|
||||
return String;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
|
@ -1,46 +1,46 @@
|
|||
PCHAR StringTokenA(PCHAR String, CONST PCHAR Delim)
|
||||
{
|
||||
PCHAR Last;
|
||||
PCHAR SpanP, Token;
|
||||
INT C, SC;
|
||||
|
||||
if (String == NULL)
|
||||
return NULL;
|
||||
|
||||
CONTINUE:
|
||||
|
||||
C = *String++;
|
||||
|
||||
for (SpanP = (PCHAR)Delim; (SC = *SpanP++) != ERROR_SUCCESS;)
|
||||
{
|
||||
if (C == SC)
|
||||
goto CONTINUE;
|
||||
}
|
||||
|
||||
if (C == ERROR_SUCCESS) { Last = NULL; return NULL; }
|
||||
|
||||
Token = String - 1;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
C = *String++;
|
||||
SpanP = (PCHAR)Delim;
|
||||
|
||||
do {
|
||||
if ((SC = *SpanP++) == C)
|
||||
{
|
||||
if (C == ERROR_SUCCESS)
|
||||
String = NULL;
|
||||
else
|
||||
String[-1] = '\0';
|
||||
|
||||
Last = String;
|
||||
return Token;
|
||||
}
|
||||
} while (SC != ERROR_SUCCESS);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
||||
}
|
||||
|
||||
PCHAR StringTokenA(PCHAR String, CONST PCHAR Delim)
|
||||
{
|
||||
PCHAR Last;
|
||||
PCHAR SpanP, Token;
|
||||
INT C, SC;
|
||||
|
||||
if (String == NULL)
|
||||
return NULL;
|
||||
|
||||
CONTINUE:
|
||||
|
||||
C = *String++;
|
||||
|
||||
for (SpanP = (PCHAR)Delim; (SC = *SpanP++) != ERROR_SUCCESS;)
|
||||
{
|
||||
if (C == SC)
|
||||
goto CONTINUE;
|
||||
}
|
||||
|
||||
if (C == ERROR_SUCCESS) { Last = NULL; return NULL; }
|
||||
|
||||
Token = String - 1;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
C = *String++;
|
||||
SpanP = (PCHAR)Delim;
|
||||
|
||||
do {
|
||||
if ((SC = *SpanP++) == C)
|
||||
{
|
||||
if (C == ERROR_SUCCESS)
|
||||
String = NULL;
|
||||
else
|
||||
String[-1] = '\0';
|
||||
|
||||
Last = String;
|
||||
return Token;
|
||||
}
|
||||
} while (SC != ERROR_SUCCESS);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
||||
}
|
||||
|
|
@ -1,45 +1,45 @@
|
|||
PWCHAR StringTokenW(PWCHAR String, CONST PWCHAR Delim)
|
||||
{
|
||||
PWCHAR Last;
|
||||
PWCHAR SpanP, Token;
|
||||
INT C, SC;
|
||||
|
||||
if (String == NULL)
|
||||
return NULL;
|
||||
|
||||
CONTINUE:
|
||||
|
||||
C = *String++;
|
||||
|
||||
for (SpanP = (PWCHAR)Delim; (SC = *SpanP++) != ERROR_SUCCESS;)
|
||||
{
|
||||
if (C == SC)
|
||||
goto CONTINUE;
|
||||
}
|
||||
|
||||
if (C == ERROR_SUCCESS) { Last = NULL; return NULL; }
|
||||
|
||||
Token = String - 1;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
C = *String++;
|
||||
SpanP = (PWCHAR)Delim;
|
||||
|
||||
do {
|
||||
if ((SC = *SpanP++) == C)
|
||||
{
|
||||
if (C == ERROR_SUCCESS)
|
||||
String = NULL;
|
||||
else
|
||||
String[-1] = '\0';
|
||||
|
||||
Last = String;
|
||||
return Token;
|
||||
}
|
||||
} while (SC != ERROR_SUCCESS);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
||||
}
|
||||
PWCHAR StringTokenW(PWCHAR String, CONST PWCHAR Delim)
|
||||
{
|
||||
PWCHAR Last;
|
||||
PWCHAR SpanP, Token;
|
||||
INT C, SC;
|
||||
|
||||
if (String == NULL)
|
||||
return NULL;
|
||||
|
||||
CONTINUE:
|
||||
|
||||
C = *String++;
|
||||
|
||||
for (SpanP = (PWCHAR)Delim; (SC = *SpanP++) != ERROR_SUCCESS;)
|
||||
{
|
||||
if (C == SC)
|
||||
goto CONTINUE;
|
||||
}
|
||||
|
||||
if (C == ERROR_SUCCESS) { Last = NULL; return NULL; }
|
||||
|
||||
Token = String - 1;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
C = *String++;
|
||||
SpanP = (PWCHAR)Delim;
|
||||
|
||||
do {
|
||||
if ((SC = *SpanP++) == C)
|
||||
{
|
||||
if (C == ERROR_SUCCESS)
|
||||
String = NULL;
|
||||
else
|
||||
String[-1] = '\0';
|
||||
|
||||
Last = String;
|
||||
return Token;
|
||||
}
|
||||
} while (SC != ERROR_SUCCESS);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
||||
}
|
|
@ -1,34 +1,34 @@
|
|||
#include <windows.h>
|
||||
|
||||
SIZE_T StringLengthW(LPCWSTR String)
|
||||
{
|
||||
LPCWSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
SIZE_T WCharStringToCharString(PCHAR Destination, PWCHAR Source, SIZE_T MaximumAllowed)
|
||||
{
|
||||
INT Length = MaximumAllowed;
|
||||
|
||||
while (--Length >= 0)
|
||||
{
|
||||
if (!(*Destination++ = *Source++))
|
||||
return MaximumAllowed - Length - 1;
|
||||
}
|
||||
|
||||
return MaximumAllowed - Length;
|
||||
}
|
||||
|
||||
INT main(VOID)
|
||||
{
|
||||
CHAR Path[MAX_PATH] = { 0 };
|
||||
WCHAR CharPath[MAX_PATH * sizeof(WCHAR)] = L"\\Users\\Tmp\\Desktop\\";
|
||||
|
||||
if(WCharStringToCharString(&Path, CharPath, StringLengthW(CharPath)) == 0)
|
||||
return 1;
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
#include <windows.h>
|
||||
|
||||
SIZE_T StringLengthW(LPCWSTR String)
|
||||
{
|
||||
LPCWSTR String2;
|
||||
|
||||
for (String2 = String; *String2; ++String2);
|
||||
|
||||
return (String2 - String);
|
||||
}
|
||||
|
||||
SIZE_T WCharStringToCharString(PCHAR Destination, PWCHAR Source, SIZE_T MaximumAllowed)
|
||||
{
|
||||
INT Length = MaximumAllowed;
|
||||
|
||||
while (--Length >= 0)
|
||||
{
|
||||
if (!(*Destination++ = *Source++))
|
||||
return MaximumAllowed - Length - 1;
|
||||
}
|
||||
|
||||
return MaximumAllowed - Length;
|
||||
}
|
||||
|
||||
INT main(VOID)
|
||||
{
|
||||
CHAR Path[MAX_PATH] = { 0 };
|
||||
WCHAR CharPath[MAX_PATH * sizeof(WCHAR)] = L"\\Users\\Tmp\\Desktop\\";
|
||||
|
||||
if(WCharStringToCharString(&Path, CharPath, StringLengthW(CharPath)) == 0)
|
||||
return 1;
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
|
@ -1,14 +1,14 @@
|
|||
VOID ZeroMemory(PVOID Destination, SIZE_T Size)
|
||||
{
|
||||
PULONG Dest = (PULONG)Destination;
|
||||
SIZE_T Count = Size / sizeof(ULONG);
|
||||
|
||||
while (Count > 0)
|
||||
{
|
||||
*Dest = 0;
|
||||
Dest++;
|
||||
Count--;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
VOID ZeroMemory(PVOID Destination, SIZE_T Size)
|
||||
{
|
||||
PULONG Dest = (PULONG)Destination;
|
||||
SIZE_T Count = Size / sizeof(ULONG);
|
||||
|
||||
while (Count > 0)
|
||||
{
|
||||
*Dest = 0;
|
||||
Dest++;
|
||||
Count--;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
Loading…
Reference in New Issue