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

Динамическое приложение с использованием шаблонов/конфигов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Взять из интернет-страницы текст и заменить в нем символы http://www.cyberforum.ru/cpp-beginners/thread1787149.html
есть страничка: http://anicon.sknt.ru:8000 там есть строчка Currently playing: ____@____@____@___ интересует взять текст ____@____@____@___ и сохранить его в блокноте вместо @ поставить enter возможно ли такое? спасибо.
C++ Разделение класса со статической переменной в многофайловом проекте На ровном месте происходят какие-то непонятные чудеса, как будто бы я шаблонный класс объявляю - если реализация класса находится в заголовочном файле, то всё хорошо, но если я её перенесу в .срр, то у компилятора возникает внезапная слепота и он выдаёт ошибку "неопределённая ссылка на конструктор/метод/и т.п.". В чём жопа-то? Раньше такого не происходило. Это у меня проблемы с IDE/компилятором... http://www.cyberforum.ru/cpp-beginners/thread1787113.html
C++ НОД рекурсия, указатели
Всем привет. Почему в рекурсии ругается на параметры возвращаемые в качестве указателя? int task_1_NOD_R(int *input_1, int *input_2) { if (*input_2== 0) return *input_1; return task_1_NOD_R (*input_1, *input_1 % *input_2); //Тут ругается; }
Исправить ошибки в работе функции C++
Помогите, не работает, компилятор ошибки не выдает. Проблема, кажется, возникает при вызове функции genPass :wall: # include <iostream> # include <cstdlib> # include <ctime> # include <fstream> using namespace std; class Password
C++ Прерывание по таймеру http://www.cyberforum.ru/cpp-beginners/thread1787024.html
Здравствуйте! Возможно ли сделать в консольном приложении на Visual Studio так, чтобы во время работы одного из циклов программы, раз в 100 мс его деятельность прерывалась и выполнялась небольшая отдельная функция?
C++ Применение метапрограммирования Доброго времени суток форумчане. Собственно говоря, как часто применимо метапрограммирование в современном мире разработок на C++. И имеет ли оно большое значение в профессиональных сферах программирования? подробнее

Показать сообщение отдельно
dailydose
10 / 10 / 3
Регистрация: 21.07.2016
Сообщений: 155
30.07.2016, 22:24  [ТС]     Динамическое приложение с использованием шаблонов/конфигов
Цитата Сообщение от minore Посмотреть сообщение
киньте мне пример вашего конфига
Цитата Сообщение от settings.h
Кликните здесь для просмотра всего текста
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
#pragma once
#ifndef SETTINGS_H
#define SETTINGS_H
 
 
// +++++++++++++++++++++++++++++++ //
#define GAME_PROCESS "KFGame.exe"
#define TRAINER_TITLE "Killing Floor 2 Trainer +3"
 
// x86 = 32
// x64 = 64
#define CPU_BIT 64
// +++++++++++++++++++++++++++++++ //
 
// 1 byte  = unsigned char
// 2 bytes = short
// 4 bytes = int
// float   = float
#define TYPE_HEALTH int
#define ADR_HEALTH 0x021817C8
#define MODULE_HEALTH "KFGame.exe"
#define OFFSETS_HEALTH 0x714,0x0,0x68,0x460,0x384
 
#define TYPE_ARMOUR unsigned char
#define ADR_ARMOUR 0x021817C8
#define MODULE_ARMOUR "KFGame.exe"
#define OFFSETS_ARMOUR 0x714,0x0,0x68,0x460,0xb40
 
#define TYPE_MONEY float
#define ADR_MONEY 0x021817C8
#define MODULE_MONEY "KFGame.exe"
#define OFFSETS_MONEY 0x714,0x0,0x68,0x254,0x244
 
#define TYPE_MAGAZINE short
#define ADR_MAGAZINE 0x021842B0
#define MODULE_MAGAZINE "KFGame.exe"
#define OFFSETS_MAGAZINE 0x8,0x27c,0x470,0x4a4,0x3ac
 
#define TYPE_AMMO int
#define ADR_AMMO 0x021842B0
#define MODULE_AMMO "KFGame.exe"
#define OFFSETS_AMMO 0x8,0x27c,0x7f4,0x4a4,0x558
 
#define TYPE_GREN unsigned char
#define ADR_GREN 0x021842B0
#define MODULE_GREN "KFGame.exe"
#define OFFSETS_GREN 0x38,0x284,0x49c,0x298
 
#endif
это пока формат не конфига, а обычный header файл, который подключаю
вообще конечный вариант думаю будет такой:
Цитата Сообщение от game_name.cfg
Кликните здесь для просмотра всего текста
Код
[BASE]
GAME_PROCESS = "KFGame.exe"
TRAINER_TITLE = "Killing Floor 2 Trainer +3"

[HEALTH]
TYPE_HEALTH = int
ADR_HEALTH = 0x021817C8
MODULE_HEALTH = "KFGame.exe"
OFFSETS_HEALTH = 0x714,0x0,0x68,0x460,0x384

[ARMOUR]
TYPE_ARMOUR = unsigned char
ADR_ARMOUR = 0x021817C8
MODULE_ARMOUR = "KFGame.exe"
OFFSETS_ARMOUR = 0x714,0x0,0x68,0x460,0xb40
Добавлено через 5 часов 17 минут
Впрочем, вот, выложил исходники на pastebin:
http://pastebin.com/u/dailydose

А вот такой код уже будет стыдно выкладывать на pastebin/github
Кликните здесь для просмотра всего текста
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
    int number;
    Data data;
 
    std::cout << "Write 1 or 2" << std::endl;
    std::cin >> number;
 
    if (number == 1)
    {
        readConfig("cfg/hl.cfg", data);
    }
    else if (number == 2)
    {
        readConfig("cfg/gtavc.cfg", data);
    }
    else
    {
        return 0;
    }
 
    std::string health = data.hp.substr(14);
    std::string armour = data.ap.substr(14);
    std::string money = data.mp.substr(13);
 
    if (health == "int")
    {
        if (armour == "int")
        {
            if (money == "int")
            {
                Character<int, int, int> character;
                character.someActions();
            }
            else if (money == "unsigned char")
            {
                Character<int, int, unsigned char> character;
                character.someActions();
            }
            else if (money == "float")
            {
                Character<int, int, float> character;
                character.someActions();
            }
        }
        else if (armour == "unsigned char")
        {
            if (money == "int")
            {
                Character<int, unsigned char, int> character;
                character.someActions();
            }
            else if (money == "unsigned char")
            {
                Character<int, unsigned char, unsigned char> character;
                character.someActions();
            }
            else if (money == "float")
            {
                Character<int, unsigned char, float> character;
                character.someActions();
            }
        }
        else if (armour == "float")
        {
            if (money == "int")
            {
                Character<int, float, int> character;
                character.someActions();
            }
            else if (money == "unsigned char")
            {
                Character<int, float, unsigned char> character;
                character.someActions();
            }
            else if (money == "float")
            {
                Character<int, float, float> character;
                character.someActions();
            }
        }
    }
    else if (health == "unsigned char")
    {
        if (armour == "int")
        {
            if (money == "int")
            {
                Character<unsigned char, int, int> character;
                character.someActions();
            }
            else if (money == "unsigned char")
            {
                Character<unsigned char, int, unsigned char> character;
                character.someActions();
            }
            else if (money == "float")
            {
                Character<unsigned char, int, float> character;
                character.someActions();
            }
        }
        else if (armour == "unsigned char")
        {
            if (money == "int")
            {
                Character<unsigned char, unsigned char, int> character;
                character.someActions();
            }
            else if (money == "unsigned char")
            {
                Character<unsigned char, unsigned char, unsigned char> character;
                character.someActions();
            }
            else if (money == "float")
            {
                Character<unsigned char, unsigned char, float> character;
                character.someActions();
            }
        }
        else if (armour == "float")
        {
            if (money == "int")
            {
                Character<unsigned char, float, int> character;
                character.someActions();
            }
            else if (money == "unsigned char")
            {
                Character<unsigned char, float, unsigned char> character;
                character.someActions();
            }
            else if (money == "float")
            {
                Character<unsigned char, float, float> character;
                character.someActions();
            }
        }
    }
    else if (health == "float")
    {
        if (armour == "int")
        {
            if (money == "int")
            {
                Character<float, int, int> character;
                character.someActions();
            }
            else if (money == "unsigned char")
            {
                Character<float, int, unsigned char> character;
                character.someActions();
            }
            else if (money == "float")
            {
                Character<float, int, float> character;
                character.someActions();
            }
        }
        else if (armour == "unsigned char")
        {
            if (money == "int")
            {
                Character<float, unsigned char, int> character;
                character.someActions();
            }
            else if (money == "unsigned char")
            {
                Character<float, unsigned char, unsigned char> character;
                character.someActions();
            }
            else if (money == "float")
            {
                Character<float, unsigned char, float> character;
                character.someActions();
            }
        }
        else if (armour == "float")
        {
            if (money == "int")
            {
                Character<float, float, int> character;
                character.someActions();
            }
            else if (money == "unsigned char")
            {
                Character<float, float, unsigned char> character;
                character.someActions();
            }
            else if (money == "float")
            {
                Character<float, float, float> character;
                character.someActions();
            }
        }
    }

Но по крайней мере он позволяет получить необходимое, т.е. создать переменную с типом, который указан в конфиге
Цитата Сообщение от cfg
C
1
2
TYPE_HEALTH = int
TYPE_ARMOUR = float
Цитата Сообщение от cpp
C++
1
2
3
4
5
6
7
std::string health = read("TYPE_HEALTH");
if(health=="int")
   int var;
else if(health=="float")
   float var;
else if(health=="unsigned char")
   unsigned char var;
Это конечно же не выход, но вариант. Причём ужасный(!) вариант
 
Текущее время: 14:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru