大家好,我想为一个应用程序做一个hwid登录。问题是,当我编译所有的代码时,我得到了这个错误。
Error C2676 binary '==':'std::basic_string,std::allocator>‘未定义此运算符或未定义到预定义运算符可接受的类型的转换
#include <Windows.h>
#include <iostream>
#include <tchar.h>
#include <intrin.h>
#include <TlHelp32.h>
#include <algorithm>
#include <vector>
using namespace std;
vector<string> serial;
vector<string> windows;
void loadserial()
{
serial.push_back("1731602307");
}
void loadWindows()
{
windows.push_back("29548");
}
int main()
{
TCHAR volumeName[MAX_PATH + 1] = { 0 };
TCHAR fileSystemName[MAX_PATH + 1] = { 0 };
DWORD serialNumber = 0;
DWORD maxComponentLen = 0;
DWORD fileSystemFlags = 0;
if (GetVolumeInformation(
_T("C:\\"),
volumeName,
ARRAYSIZE(volumeName),
&serialNumber,
&maxComponentLen,
&fileSystemFlags,
fileSystemName,
ARRAYSIZE(fileSystemName)))
{
}
int cpuinfo[4] = { 0, 0, 0, 0 };
__cpuid(cpuinfo, 0);
char16_t hash = 0;
char16_t* ptr = (char16_t*)(&cpuinfo[0]);
for (char32_t i = 0; i < 8; i++)
hash += ptr[i];
while (true)
{
if (find(serial.begin(), serial.end(), serialNumber) != serial.end())
{
std::cout << "nice you are in our auth system!!";
}
else
{
std::cout << "you arent in the whitelist ;(";
}
}
return(0);
}发布于 2020-05-09 03:00:08
好了,现在清楚了
find(serial.begin(), serial.end(), serialNumber)serial是vector<string>,但serialNumber是DWORD。不能使用find在字符串向量中查找DWORD值。我猜你需要先把DWORD转换成一个字符串,或者你也可以把vector<DWORD>改成一个字符串。
就像drescherjm所说的那样,要养成在输出选项卡中查看错误消息的习惯,它比错误列表(由于某种原因,微软坚持首先显示错误列表)要有用得多。
https://stackoverflow.com/questions/61686004
复制相似问题