Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Ошибка в определении стандартной API функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Условие цикла не работает должным образом http://www.cyberforum.ru/cpp-beginners/thread1488935.html
я добавил коментарий на том цикле ,где начало должно быть с 0 ,а не 5 так в чем собственно ошибка и как ее обойти? for (i=0;i<=6;i++) { for (j=0;j<=(n-1);j++) { f=0; ...
C++ Как с помощью setfill() заполнить определенную часть вывода Ребят нужно что бы setfill заполнял только на определенные участки, даже не на всю строку Пример: cout<<"\n\n"<<setw(38)<<"Numer"<<setw(12)<<setfill('.')<<var; Нужно что бы точки были так: ... http://www.cyberforum.ru/cpp-beginners/thread1488933.html
C++ Как первый и второй массивы с цифрами объединить и записать в третий массив и отсортировать?
В первом и во втором массиве находятся несколько цифр. Пожалуйста помогите, с чего мне начать и если сможете, выложите похожий готовый код. п.5.18. Правил Запрещено размещать задания и решения в...
C++ Приложение, скомпилированное под 64-битной системой, запускается не на всех машинах
Сюда я буду класть свои вопросы по С++:) Начну пожалуй: Почему приложения скомпилированные в DEV C++ запускается не на всех осях? в вин 8 х64 (там где я и пишу) запускается нормально, но на...
C++ Не могли бы вы подсказать блок схему? http://www.cyberforum.ru/cpp-beginners/thread1488845.html
Никак не могу разобраться с блок схемой. Могли бы вы мне помочь нарисовать блок схему, хотя бы описать в алгоритме (1 начало, 2.. 3..) Я посмотрел через программу, как я понял нужен логический блок...
C++ где скачать хорошую Visual Studio Для С++ народ подскажите где ее скачать можно облазил все и не нашел нормальной, а если и нашел то с ошибками не понятными ааа помогите, я даже качал с оф сайта. За ранее спасибо! подробнее

Показать сообщение отдельно
MMt
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 169

Ошибка в определении стандартной API функции - C++

27.06.2015, 21:41. Просмотров 234. Ответов 8
Метки (Все метки)

Переписываю Бота по уроку из Ютьюба. Сейчас первый тест бота. Суть - найти в окне приложения определенный цвет пикселя и поместить туда курсор.

Ошибка в определении функции GetPixel() строка 76.Компилятор видит эту функции иначе?
Помогите пож.

Мейн файл.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include "Header_22062015.h"
 
std::string chosenColor;
 
 
 
void MainScan(ScanContents scan);
 
void ChekColor(COLORREF pixel, int x, int y);
 
bool ColorMatch(COLORREF pixel);
 
int main()
{
    std::string gameWindow;
    std::cout << "Enter game win. Name:" <<std::endl;
    //std::getline(std::cin, gameWindow);
    gameWindow = "1";//"Red_Black_Test - Paint";
 
    HWND appWnd = FindWindow(0, gameWindow.c_str());
    RECT rcClientPositioning;
 
    while(!appWnd)
    {
        system("CLS");
        appWnd = FindWindow(0, gameWindow.c_str());
        std::cout << "Lokking for" << gameWindow << std::endl;
        Sleep(1000);
    };
 
    std::cout << "Found" << gameWindow << std::endl;
 
    while(atoi(chosenColor.c_str()) < 1 || atoi(chosenColor.c_str()) > 3 )
    {
        system("CSL");
        std::cout << "Choose wich color triger against" <<
        "1.Red\n2.Green\n3.Blue"
        << std::endl;
        std::getline(std::cin, chosenColor);
    };
 
    std::string color;
    if(chosenColor == "1")color = "Red";
    else if(chosenColor == "2")color = "Green";
    else if(chosenColor == "3")color = "Blue";
    system("CLS");
 
    std::cout << "TrigerBot ONLINE, hover over" << color << " to shot..." << std::endl;
 
    GetWindowRect(appWnd, &rcClientPositioning);
 
    HDC hdcMain = GetDC(HWND_DESKTOP);
 
    int startingX = rcClientPositioning.right - ((rcClientPositioning.right - rcClientPositioning.left)/2);
 
    int startingY = rcClientPositioning.bottom - ((rcClientPositioning.bottom - rcClientPositioning.top)/2);
 
    ScanContents scan(startingX, startingY, hdcMain, 30, 40, -30, -30);
 
    MainScan(scan);
 
    system("pause");
 
    return 0;
};
 
void MainScan(ScanContents scan)
{
    int debugRunTime = clock();
    while(true)
    {
        for(int y = scan.StartY+scan.DeductY; y < scan.StartY+scan.CompareY; y++)
        {
            for(int x = scan.StartX+scan.DeductX; x < scan.StartX+scan.CompareX; x++)
            {
                //Sleep(100);
                //SetCurcorPos(0,0);
 
                ChekColor(extern "C" GetPixel(scan.Hdc, x, y), x, y);
                if(GetAsyncKeyState(VK_DELETE))
                {
                    exit(0);
                };
            };
        };
    };
};
 
void ChekColor(COLORREF pixel, int x, int y)
{
    if(ColorMatch(pixel))
    {
        mouse_event(MOUSEEVENTF_LEFTDOWN, x, y, 0, 0);
        mouse_event(MOUSEEVENTF_LEFTUP, x, y, 0, 0);
    };
};
 
bool ColorMatch(COLORREF pixel)
    {
    int r = GetRValue(pixel);
    int g = GetGValue(pixel);
    int b = GetBValue(pixel);
 
    //RED
    if(chosenColor =="1")
    {
        if(r>50 && g<40 && b<40)
        {
            return true;
        };
    }
    //Green
    else if(chosenColor =="2")
    {
        if(r<40 && g>50 && b<40)
        {
            return true;
        };
    }
    //Blue
    else if(chosenColor =="3")
    {
        if(r<40 && g<40 && b>50)
        {
            return true;
        };
    };
};
Хидер-файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <windows.h>
#include <iostream>
#include <ctime>
#include <string>
#include <wingdi.h>
 
 
 
 
class ScanContents
{
 
public:
    int StartX;
    int StartY;
    int DeductX;
    int DeductY;
    int CompareX;
    int CompareY;
    HDC Hdc;
 
    ScanContents(
        int startX, int startY, HDC hdc, int compareX= 0,
        int compareY= 0, int deductX= 0, int deductY= 0)
        {
            StartX = startX;
            StartY = startY;
            CompareX = compareX;
            CompareY = compareY;
            DeductX = deductX;
            DeductY = deductY;
            Hdc = hdc;
        }
 
    //~ScanContents();
};
Ошибка:
||=== Build: Debug in 270615_BOT (compiler: GNU GCC Compiler) ===|
C:\Users\admin\Documents\CodeBlocks\270615_BOT\Main_22062015.cpp||In function 'void MainScan(ScanContents)':|
C:\Users\admin\Documents\CodeBlocks\270615_BOT\Main_22062015.cpp|69|warning: unused variable 'debugRunTime' [-Wunused-variable]|
C:\Users\admin\Documents\CodeBlocks\270615_BOT\Main_22062015.cpp||In function 'bool ColorMatch(COLORREF)':|
C:\Users\admin\Documents\CodeBlocks\270615_BOT\Main_22062015.cpp|128|warning: control reaches end of non-void function [-Wreturn-type]|
obj\Debug\Main_22062015.o||In function `Z8MainScan12ScanContents':|
C:\Users\admin\Documents\CodeBlocks\270615_BOT\Main_22062015.cpp|79|undefined reference to `GetPixel@12'|
||=== Build failed: 1 error(s), 2 warning(s) (0 minute(s), 0 second(s)) ===|


Если я правильно понимаю, то компилятор видит стандартную функцию под другим именем?
Возможно надо как-то через extern "C" передать эту функцию?
Среда разработки КодБлокс и ДевС++ ошибка на разных компиляторах (ГНУ, ВС2010) одна и та-же...
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru