c2664无法将参数2从'std :: string'转换为'const void *'

时间:2015-10-13 11:47:59

标签: c++ c++11

这是我调用函数的地方..

memcpy(dataHashResult,sha1.operator()(dataBuffer,16),16);

我改变了

///计算内存块的SHA1

std::string operator()(const void* data, size_t numBytes);

std::string operator()(BYTE* data, size_t numBytes);

缓冲区的类型是..

unsigned char dataBuffer[64];

unsigned char dataHashResult[64];

任何帮助将不胜感激..我是C ++的新手.. 感谢。

1 个答案:

答案 0 :(得分:3)

试试这个:

memcpy(dataHashResult,sha1.operator()(dataBuffer,16).c_str(),16);

问题是memcpy需要一个指向要复制的指针。您的原始代码为其提供了std::string 对象。幸运的是,std::stringc_str()函数返回" C风格"字符串,即const char*