簡體   English   中英

第 25 行的“表達式必須具有整數或無作用域的枚舉類型”

[英]"expression must have integral or unscoped enum type" on line 25

為了好玩,我一直在研究 C++ Autoclicker 項目,我注意到第 25 行有一個錯誤,指出“表達式必須具有整數或無作用域的枚舉類型”。有人能幫我弄清楚嗎?

代碼:

#include <iostream>
#include <windows.h>
#include <thread>
#include <conio.h>
using namespace std;
int x;
int y;

int cps(int clicks)
{
    std::cout << "Please enter desired cps (clicks per second)" << std::endl;
    std::cin >> clicks;

    return clicks;
}

bool clicking()
{

    // clicker{ cps };
    if (GetAsyncKeyState(VK_MBUTTON))
    {
        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
        Sleep(rand() % cps / 1000);
    }

} 



int main()
{
    std::thread(cps).join();
    std::thread(clicking).join();
    return 0;
}

第 25 行的“表達式必須具有整數或無作用域的枚舉類型”

Sleep(rand() % cps / 1000);

^ cps 是一個函數,它接受輸入並接受一個參數,您不會像函數一樣調用它,您需要執行 cps(5) 或類似的操作。 但是代碼並不好,可以通過如下所示的預期結果大大簡化和增強:

#include <iostream>
#include <windows.h>
#include <random>

int main()
{
    std::default_random_engine generator;
    std::uniform_int_distribution<int> distribution(200, 1000);

    while (1)
    {
        if (GetAsyncKeyState(VK_RBUTTON))
        {
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
            Sleep(20);
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

            int random_value = distribution(generator);
            Sleep(random_value);
        }
    }

    return 0;
}

按住鼠標右鍵時,它將以 200 到 1000 毫秒的間隔隨機執行左鍵單擊。 額外的 Sleep(20) 將提供額外的時間來確保您的目標窗口檢測到左鍵單擊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM