Почему вы используете unsigned char*
в первую очередь?
В любом случае, если SrvName
завершен нулем, вы можете сделать:
std::string m_sSMTPSrvName=reinterpret_cast<const char*>(SrvName);
Или, если вы знаете длину SrvName
, вы можете сделать:
std::string m_sSMTPSrvName(SrvName, SrvName + Length);
EDIT:
После прочтения вашего нового комментария похоже, что на самом деле вам нужно преобразовать числа в массиве в строку, представляющую IP-адрес. Вы можете сделать это следующим образом:
#include <sstream>
for (int i = 0; i < 4; i++)
{
std::stringstream out;
out << (int)SrvName[i];
m_sSMTPSrvName += out.str();
if (i < 3)
{
m_sSMTPSrvName += ".";
}
}