Ваш stringbuffer слишком короткий
itoa превышает буферную емкость при записи нулевого символа завершения.
char* p1 = new char[3];
itoa(10,p1,10);
TextOutA(hDC,5, currenty,p1,2);
delete[] p1;
Я предлагаю вам сделать буфер достаточно большим, чтобы вместить весь диапазон целых чисел.
Редактировать На всякий случай уточняем предложение о потоке строк:
#include <sstream>
//....
{
std::stringstream ss;
ss << 10;
std::string s = ss.str();
TextOutA(hDC, 5, currenty, s.c_str(), s.length());
}