首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在c++中进行hwid登录(多字节)

在c++中进行hwid登录(多字节)
EN

Stack Overflow用户
提问于 2020-05-09 02:48:10
回答 1查看 682关注 0票数 1

大家好,我想为一个应用程序做一个hwid登录。问题是,当我编译所有的代码时,我得到了这个错误。

Error C2676 binary '==':'std::basic_string,std::allocator>‘未定义此运算符或未定义到预定义运算符可接受的类型的转换

代码语言:javascript
复制
#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);
}
EN

回答 1

Stack Overflow用户

发布于 2020-05-09 03:00:08

好了,现在清楚了

代码语言:javascript
复制
find(serial.begin(), serial.end(), serialNumber)

serialvector<string>,但serialNumberDWORD。不能使用find在字符串向量中查找DWORD值。我猜你需要先把DWORD转换成一个字符串,或者你也可以把vector<DWORD>改成一个字符串。

就像drescherjm所说的那样,要养成在输出选项卡中查看错误消息的习惯,它比错误列表(由于某种原因,微软坚持首先显示错误列表)要有用得多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61686004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档