Пример #1
0
LPWSTR CMemPool::GetDuplicateStringW(LPCWSTR szSrc)  
{  
    assert(szSrc);  
  
    DWORD dwBytes = (wcslen(szSrc) + 1) * sizeof(WCHAR);  
    LPWSTR pString = (LPWSTR)GetAlignedMemory(dwBytes, sizeof(WCHAR));  
  
    if (pString)   
    {  
        wcscpy_s(pString, dwBytes, szSrc);  
    }  
    return pString;  
}  
Пример #2
0
LPSTR CMemPool::GetDuplicateStringA(LPCSTR szSrc)  
{  
    assert(szSrc);  
  
    DWORD dwBytes = (_mbslen((const unsigned char*)szSrc) + 1) * sizeof(CHAR);  
    LPSTR pString = (LPSTR)GetAlignedMemory(dwBytes, sizeof(CHAR));  
  
    if (pString)   
    {  
        _mbscpy_s((unsigned char*)pString, dwBytes, (const unsigned char*)szSrc);  
    }  
    return pString;  
}  
Пример #3
0
wchar_t* GetAlignedPtr(std::vector<wchar_t>* buf, size_t alignment, size_t nchars) {
  buf->resize(nchars + ceil((3 * alignment) / sizeof(wchar_t)));
  return reinterpret_cast<wchar_t*>(GetAlignedMemory(reinterpret_cast<char*>(buf->data()),
                                                     alignment, 0));
}
Пример #4
0
char* GetAlignedPtr(std::vector<char>* buf, size_t alignment, size_t nbytes) {
  buf->resize(nbytes + 3 * alignment);
  return GetAlignedMemory(buf->data(), alignment, 0);
}