2015-10-13 76 views
2

這就是我所說的功能..C2664無法從 '的std :: string' 轉換參數2 '常量無效*'

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); 

的TY緩衝區的PES是..

unsigned char dataBuffer[64]; 

unsigned char dataHashResult[64]; 

任何幫助,將不勝感激..I'm新的C++ .. 感謝。

+0

你可以發佈[mcve](http://stackoverflow.com/help/mcve)嗎? –

+0

'operator()'重載意味着你可以(應該)使用'sha1'對象,就像函數:'sha1(dataBuffer,16)'。 – molbdnilo

+0

好吧我不知道要發佈多少。 –

回答

3

試試這個:

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

的問題是,memcpy需要一個指向從複製。您的原始代碼給它一個std::string對象。幸運的是,std::string具有返回「C風格」字符串的c_str()函數,即const char*

+1

非常感謝它解決了..!對於答案以及及時的答覆! –

+0

@KarthikRao你應該接受他的答案。 –

+0

是的,我做了... 10分鐘,它不會讓我這樣做。 ..感謝您的解釋以及@Adam –

相關問題