[英]"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.