www.pudn.com > XFileLoadingCode.zip > Utilities.cpp


#include "dxstdafx.h" 
#include ".\utilities.h" 
 
/** 
 * \brief makes a new character string from the passed one 
 * \param c_str - the null terminated char string 
 * \return the new string. Caller is responsible for freeing the memory 
 * \author Keith Ditchburn \date 17 July 2005 
*/ 
char* CUtilities::DuplicateCharString(const char* c_str) 
{ 
    if (!c_str) 
		return NULL; 
 
	size_t len=strlen(c_str) + 1; 
	char *newString = new char[len]; 
	memcpy(newString, c_str, len*sizeof(char)); 
 
	return newString; 
} 
 
/** 
 * \brief takes a char string and creates a wide string from it 
 * \param c_str - the null terminated char string 
 * \return the new string. Called is responsible for deleting memory 
 * \author Keith Ditchburn \date 17 July 2005 
*/ 
WCHAR* CUtilities::CreateWideStringFromCharString(const char *c_str) 
{ 
	if (!c_str) 
		return NULL; 
 
	size_t len=strlen(c_str)+1; 
	WCHAR *wideString=new WCHAR[len]; 
 
	if( MultiByteToWideChar( CP_ACP, 0, c_str, -1, wideString, (int)len ) == 0 ) 
		return NULL; 
 
	return wideString; 
} 
 
/** 
 * \brief takes a char string and creates a wide string from it 
 * \param c_str - the null terminated char string 
 * \param widestring - the wide string to write to 
 * \param wideStringLen - the length of the wide string 
 * \return the new string. Caller is responsible for deleting memory. 
 * \author Keith Ditchburn \date 17 July 2005 
*/ 
bool CUtilities::FillWideStringFromCharString(const char *c_str,WCHAR *wideString,size_t wideStringLen) 
{ 
	if (!c_str || !wideString) 
		return false; 
 
	if( MultiByteToWideChar( CP_ACP, 0, c_str, -1, wideString, (int)wideStringLen ) == 0 ) 
		return false; 
 
	return true; 
}