简体   繁体   English

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

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

This is where I call the function.. 这是我调用该函数的地方。

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

I changed 我变了

/// compute SHA1 of a memory block ///计算内存块的SHA1

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

to

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

the types of buffers are.. 缓冲区的类型是..

unsigned char dataBuffer[64];

unsigned char dataHashResult[64];

Any help would be appreciated ..I'm new to C++.. Thanks. 任何帮助将不胜感激..我是C ++的新手。.谢谢。

try this: 尝试这个:

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

The problem is that memcpy needs a pointer to copy from. 问题是memcpy需要一个指针来复制。 Your original code gives it a std::string object . 您的原始代码为其提供了一个std::string 对象 Luckily, std::string has a c_str() function that returns the "C-style" string, ie a const char* . 幸运的是, std::string具有一个c_str()函数,该函数返回“ C样式”字符串,即const char*

暂无
暂无

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

相关问题 错误C2664:无法将参数1从&#39;const std :: basic_string &lt;_Elem,_Traits,_Ax&gt;&#39;转换为&#39;std :: wstring& - error C2664: cannot convert parameter 1 from 'const std::basic_string<_Elem,_Traits,_Ax>' to 'std::wstring & 错误 C2664:“int printf(const char *const,…)”:无法将参数 2 从“void”转换为“…” - error C2664: 'int printf(const char *const ,…)': cannot convert argument 2 from 'void' to '…' C2664无法在Qt C ++中将参数1从用户* const转换为用户 - C2664 cannot convert parameter 1 from from User *const to User in Qt C++ C2664无法将参数1从&#39;const char *&#39;转换为&#39;Node *&#39; - C2664 cannot convert argument 1 from 'const char *' to 'Node*' 错误 C2664 'HRESULT IUnknown::QueryInterface(const IID &amp;,void **)':无法将参数 1 从 'const winrt::guid' 转换为 'const IID &amp;' - Error C2664 'HRESULT IUnknown::QueryInterface(const IID &,void **)': cannot convert argument 1 from 'const winrt::guid' to 'const IID &' 错误C2664:&#39;cvSaveImage&#39;:无法将参数2从&#39;cv :: Mat&#39;转换为&#39;const CvArr *&#39; - error C2664: 'cvSaveImage' : cannot convert parameter 2 from 'cv::Mat' to 'const CvArr *' :错误C2664:&#39;MessageBoxW&#39;:无法从&#39;const char [40]&#39;转换参数2 - : error C2664: 'MessageBoxW' : cannot convert parameter 2 from 'const char [40]' 错误C2664:“发送”:无法将参数2从“ ServerGreeting”转换为“ const char *” - error C2664: 'send' : cannot convert parameter 2 from 'ServerGreeting' to 'const char *' 错误C2664:&#39;pthread_create&#39;:无法将参数3从&#39;void *(__ clrcall *)(void *)&#39;转换为&#39;void *(__ cdecl *)(void *) - error C2664: 'pthread_create' : cannot convert parameter 3 from 'void *(__clrcall *)(void *)' to 'void *(__cdecl *)(void *) 错误C2664:&#39;strcmp&#39;:无法将参数2从&#39;char&#39;转换为&#39;const char *&#39; - error C2664: 'strcmp' : cannot convert parameter 2 from 'char' to 'const char *'
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM