繁体   English   中英

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

[英]c2664 cannot convert parameter 2 from 'std::string' to 'const void *'

这是我调用该函数的地方。

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 ++的新手。.谢谢。

尝试这个:

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

问题是memcpy需要一个指针来复制。 您的原始代码为其提供了一个std::string 对象 幸运的是, std::string具有一个c_str()函数,该函数返回“ C样式”字符串,即const char*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM