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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
#1

Возврат 2 значений из функции с одним вызовом этой же функции - C++

18.12.2013, 17:02. Просмотров 1025. Ответов 25
Метки нет (Все метки)

Вообщем где то в какой то игре была хукнута одна функция

C++
1
int function(int arg1,int arg2,int arg3);
суть в чем

C++
1
2
3
4
5
6
7
int function(int arg1,int arg2,int arg3)
{
    int retval = 0;
    // туча кода
    int rettwo = function2(arg1,arg2,arg3);
    return retval;
}
Нужно вызвать function и возвратить retval значение а потом вызывать опять но вернуть уже rettwo.
Вроде бы на asm это можно но я не знаю как c++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2013, 17:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возврат 2 значений из функции с одним вызовом этой же функции (C++):

Расчёт значений двумерного массива и их возврат в main() с однократным вызовом функции - C++
Добрый день. Пусть некоторая функция f(a,b,...) производит расчет и записывает данные в двумерный массив M, возвращая его указатель...

Некорректный возврат значений из функции - C++
В функции Main после вызова fillArrayLastSymbol выводятся не те элементы массива, которые были выведены перед выходом из функции. Вторым...

Возврат нескольких значений из функции - C++
Здравствуйте, Подскажите пожалуйста, как можно передать из функции 2 результата, например, в магазине есть купюры номиналом 2 и 5,...

Возврат из функции двух значений - C++
в массиве нужно выбрать минимально и максимально значения, а затем их местами поменять. чтоб узнать макс. и мин. пишу две функции заодно...

найти сумму значений этой функции при n=1...10 - C++
аргументом функции y=sinx служат числа натурального ряда от 1 до 10 найти сумму значений этой функции при n=1...10 ...

Проблемы с вызовом функции - C++
Проблемы с вызовом 3 функции,тип(Void); Подскажите в чем ошибка. #include <iostream> using namespace std; ...

25
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:34  [ТС] #16
Цитата Сообщение от MastAKK Посмотреть сообщение
что?
не сработает вот что.

Ладно пример по проще:

Эта функция возвращает 1 если [клавиша зажата но не опущена] и 0 [если была нажата и опущена].
Надо сделать так чтобы была и [зажата] и [нажата и опущена]

как то так.

Знаю точно что решение делается всего в 3 функциях включая ту которая в 1 посте
0
Ev_Hyper
Заблокирован
18.12.2013, 17:36 #17
Цитата Сообщение от _or_75 Посмотреть сообщение
Надо сделать так чтобы была и [зажата] и [нажата и опущена]
Но ведь это противоречивые результаты
0
MastAKK
145 / 136 / 12
Регистрация: 13.10.2012
Сообщений: 592
18.12.2013, 17:38 #18
Цитата Сообщение от _or_75 Посмотреть сообщение
не сработает вот что.
Ладно пример по проще:
Эта функция возвращает 1 если [клавиша зажата но не опущена] и 0 [если была нажата и опущена].
Надо сделать так чтобы была и [зажата] и [нажата и опущена]
как то так
Черт, так бы сразу и сказал.
Во-первых.
Цитата Сообщение от _or_75 Посмотреть сообщение
не сработает вот что.
сработает, просто руки должны правильно расти.
Во-вторых. Отлавливаешь код кнопки, через if или switch проверяешь нужное значение. А функцию вызываешь в цикле

Добавлено через 1 минуту
Цитата Сообщение от _or_75 Посмотреть сообщение
Надо сделать так чтобы была и [зажата] и [нажата и опущена]
кстати да, условия противоречат друг другу
0
dzrkot
zzzZZZ...
522 / 352 / 53
Регистрация: 11.09.2013
Сообщений: 2,022
18.12.2013, 17:40 #19
это уже RTOS попахивает, и опросом кнопки по таймеру))
0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:40  [ТС] #20
Цитата Сообщение от MastAKK Посмотреть сообщение
Черт, так бы сразу и сказал.
Во-первых. сработает, просто руки должны правильно расти.
Во-вторых. Отлавливаешь код кнопки, через if или switch проверяешь нужное значение. А функцию вызываешь в цикле
да но коды клавиш в игре отличаются от системных, если бы этого не было я бы просто
вернул результат 1 [что клавиша зажата но не опущена], и перед этим симулировал обычное нажатие.
0
S_el
2112 / 1632 / 308
Регистрация: 15.12.2013
Сообщений: 6,572
18.12.2013, 17:40 #21
В C++ функция просто не может вернуть 2 значения.Если хотите получить 2 результата после работы с функцией,или передавайте что-то в качестве аргумента по ссылке,или в качестве возвращаемого значения используете свой тип.
0
dzrkot
zzzZZZ...
522 / 352 / 53
Регистрация: 11.09.2013
Сообщений: 2,022
18.12.2013, 17:42 #22
Цитата Сообщение от _or_75 Посмотреть сообщение
Эта функция возвращает 1 если [клавиша зажата но не опущена] и 0 [если была нажата и опущена].
Надо сделать так чтобы была и [зажата] и [нажата и опущена]
у вас состояние кнопки описывается только 2мя положениями, или вкл, или выкл. Не может быть вкл и выкл одновременно. Просто вы должы опрашивать(т.е. вызывать функцию проверки состояния кнопки) в идеале в каждый момент времени, на правтике - это Хмс.

Не по теме:

лучше домой поеду а то мне он мозг сломает))

0
S_el
2112 / 1632 / 308
Регистрация: 15.12.2013
Сообщений: 6,572
18.12.2013, 17:44 #23
Или в Qt использовать механизм сигналов и слотов.
0
MastAKK
18.12.2013, 17:49
  #24

Не по теме:

S_el, ну, к сожалению, тут форум не Qt. Да и в Qt можно просто keyEvent делать, зачем сигналы-слоты?

0
S_el
2112 / 1632 / 308
Регистрация: 15.12.2013
Сообщений: 6,572
18.12.2013, 17:52 #25
Цитата Сообщение от MastAKK Посмотреть сообщение

Не по теме:

S_el, ну, к сожалению, тут форум не Qt. Да и в Qt можно просто keyEvent делать, зачем сигналы-слоты?

Не по теме:

Я как пример привел

0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 18:00  [ТС] #26
Во всем диалоге я понял что надо перед return эмулировать обычное нажатие клавиши а в return
вернуть значение которая отвечает за то что клавиша [нажата но не опущена] ведь после return
клавиша только переходит в нужное состояние. Получается что эмуляция как бы вернула результат
того что клавиша была [нажата и опущена] а последующий return возвращает код что клавиша [нажата но не опущена] и после это действия выполняется.

:lol:
0
18.12.2013, 18:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2013, 18:00
Привет! Вот еще темы с ответами:

.Написать функцию, которая будет возвращать значение y=ln(x)+x при входящем параметре x. Построить таблицу значений этой функции - C++
.Написать функцию, которая будет возвращать значение y=ln(x)+x при входящем параметре x. Построить таблицу значений этой функции. ...

Вычисление функции на заданном промежутке, и построение графика этой функции - C++
Написать блок-схему и программу вычисления функции на за- данном промежутке с шагом 0.2 и построить график этой функции. Если x>1 ...

Перевести с Pascal вычисление функции на заданном промежутке и построить график этой функции - C++
uses crt,graphABC; function y(x:real):real; begin if x<0 then y:=x*x else if x<=2.5 then y:=1+3*ln(abs(1-x*x*x)) else...

Не компилируется строка с вызовом функции - C++
#include <iostream> using namespace std; void chis(int a) { if(a/2==0) { cout<<" "<<endl; } ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru