Надо: скормить CHeapPtr свой аллокатор следующего содержания:
#pragma once
#include <Wincrypt.h>
class CCryptAllocator
{
public:
static void* Reallocate(void* p, size_t nBytes) throw()
{
return CryptMemRealloc(p, static_cast<ULONG>(nBytes));
}
public:
static void* Allocate(size_t nBytes) throw()
{
return ::CryptMemAlloc(static_cast<ULONG>nBytes);
}
public:
static void Free(void* p) throw()
{
CryptMemFree(p);
}
};
Проблема: а он его не ест! Причем не ест следующим образом:
CryptoModule.obj : error LNK2019: unresolved external symbol __imp__CryptMemFree@4 referenced in function "public: static void __cdecl CCryptAllocator::Free(void *)" (?Free@CCryptAllocator@@SAXPAX@Z)
CryptoModule.obj : error LNK2019: unresolved external symbol __imp__CryptMemAlloc@4 referenced in function "public: static void * __cdecl CCryptAllocator::Allocate(unsigned int)" (?Allocate@CCryptAllocator@@SAPAXI@Z)
Debug\EosCryptoSvc.exe : fatal error LNK1120: 2 unresolved externals
Что я делаю не так? Почему он не ругается на CryptMemRealloc?