我在尝试编译时收到此错误消息:
-
错误C2556: '诠释*加密(常量BinaryBuffer&,常量EncryptionKey设置&)':重载函数仅通过从 'BinaryBuffer加密(常量BinaryBuffer&,常量EncryptionKey设置&)' 返回类型不同
-
错误C2040:'加密':'int *(const BinaryBuffer&,const EncryptionKey&)'与'BinaryBuffer(const BinaryBuffer&,const EncryptionKey&)'的间接级别不同
-
错误C2556: '字符*解密(常量BinaryBuffer&,常量EncryptionKey设置&)':重载函数仅通过从返回类型不同 'BinaryBuffer解密(常量BinaryBuffer&,常量EncryptionKey设置&)'
-
错误C2040:'解密':'char *(const BinaryBuffer&,const EncryptionKey&)'与'BinaryBuffer(const BinaryBuffer&,const EncryptionKey&)'的间接级别不同
cpp文件:
#include "Encryption.h"
#include <algorithm>
#include <iterator>
#pragma intrinsic(_rotl8, _rotr8)
constexpr auto xorKeyLocation = 0;
constexpr auto numberOfBitsToRotateLocation = 1;
int* Encrypt(const BinaryBuffer& plainText, const EncryptionKey& key)
{
const auto xorKey = key[xorKeyLocation];
const auto numberOfBitsToRotate() = key[numberOfBitsToRotateLocation];
const BinaryBuffer result;
do
{
std::transform(
plainText.begin(),
plainText.end(),
std::back_inserter(result),
[&](const auto byte)
{
const auto xored = byte ^ xorKey;
const auto shifted = _rotl8(xored, numberOfBitsToRotate);
return shifted;
});
} while (0);
return result;
}
char* Decrypt(const BinaryBuffer& cipherText, const EncryptionKey& key)
{
const auto xorKey = key[xorKeyLocation];
const auto numberOfBitsToRotate() = key[(std::vector<int>)numberOfBitsToRotateLocation];
const BinaryBuffer result;
std::transform(
cipherText.cbegin(),
cipherText.cend(),
std::back_inserter(result),
[&](const auto byte)
{
const auto shifted = _rotr8(byte, numberOfBitsToRotate);
const auto xored = shifted ^ xorKey;
return xored;
});
return result;
}
h文件:
#pragma once
#include "Common.h"
BinaryBuffer Encrypt(const BinaryBuffer& plainText, const EncryptionKey& key);
BinaryBuffer Decrypt(const BinaryBuffer& cipherText, const EncryptionKey& key);
我做错了什么?
谢谢 .
1 回答
函数的返回类型与 Headers 中的声明不匹配 .