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

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

Восстановить пароль Регистрация
 
 
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:02     Возврат 2 значений из функции с одним вызовом этой же функции #1
Вообщем где то в какой то игре была хукнута одна функция

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++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2013, 17:02     Возврат 2 значений из функции с одним вызовом этой же функции
Посмотрите здесь:

найти сумму значений этой функции при n=1...10 C++
C++ определение функции в ЗАГОЛОВОЧНОМ файле. В основном предполагается переопределение ТЕЛА этой функции. Как это сделать, не правя хидер?
Возврат значения из функции C++
.Написать функцию, которая будет возвращать значение y=ln(x)+x при входящем параметре x. Построить таблицу значений этой функции C++
Просмотр списка с вызовом callback функции C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
18.12.2013, 17:05     Возврат 2 значений из функции с одним вызовом этой же функции #2
C++
1
2
3
4
5
6
7
8
9
10
11
static bool flag=true;
if (flag)
{
flag=false;
return a;
}
else
{
flag=true;
return b;
}
идея такая
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:09  [ТС]     Возврат 2 значений из функции с одним вызовом этой же функции #3
Цитата Сообщение от dzrkot Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
static bool flag=true;
if (flag)
{
flag=false;
return a;
}
else
{
flag=true;
return b;
}
идея такая
Да но надо с 1 вызовом этой функции а не с двумя. Тут тоже ничего не выйдет
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
18.12.2013, 17:12     Возврат 2 значений из функции с одним вызовом этой же функции #4
как вы себе это представляете? у вас функция возвращает int 1шт... , куда вы хотите это вернуть...какие 2 значения? бред какой-то...
можо по ссылке менять переменную, но не вернуть 2 при вызове 1 функции ....
MastAKK
 Аватар для MastAKK
143 / 134 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
18.12.2013, 17:13     Возврат 2 значений из функции с одним вызовом этой же функции #5
Цитата Сообщение от _or_75 Посмотреть сообщение
1 вызовом этой функции а не с двумя
То есть это как? Пример на пальцах покажите
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:16  [ТС]     Возврат 2 значений из функции с одним вызовом этой же функции #6
Цитата Сообщение от dzrkot Посмотреть сообщение
как вы себе это представляете? у вас функция возвращает int 1шт... , куда вы хотите это вернуть...какие 2 значения? бред какой-то...
можо по ссылке менять переменную, но не вернуть 2 при вызове 1 функции ....
А как насчет вернуть одно значение потом выполнить функцию еще раз но вернуть уже другой результат.
Хоть не 1 вызов функции но должно же работать
MastAKK
 Аватар для MastAKK
143 / 134 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
18.12.2013, 17:18     Возврат 2 значений из функции с одним вызовом этой же функции #7
_or_75, да объясните вы что вы хотите получить! Пример, набросок, что-нибудь. Пока что несете немного бред.
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:19  [ТС]     Возврат 2 значений из функции с одним вызовом этой же функции #8
Цитата Сообщение от MastAKK Посмотреть сообщение
То есть это как? Пример на пальцах покажите
То есть у вас с начало вернёт одно значение а когда вызов будет второй, вернёт другое значение.
То есть с каждым вызовом значение другое.

Например нужно вернуть 1 и 2, у вас с начало вернёт 1 а в следующем вызове вернёт 2, потом 1 и опять 2 и т. д.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
18.12.2013, 17:21     Возврат 2 значений из функции с одним вызовом этой же функции #9
Цитата Сообщение от _or_75 Посмотреть сообщение
А как насчет вернуть одно значение потом выполнить функцию еще раз но вернуть уже другой результат.
Хоть не 1 вызов функции но должно же работать
даже если теоретически это возможно, то вы перепишите 1ое значение 2-ым...

функция ваша вызывается так:
C++
1
2
int x;
x=function(arg1,arg2,arg3);
т.е. мы в х запишем(теоретически) ОБА ваши значения и это не имеет никакого лог смысла.

Добавлено через 46 секунд
Цитата Сообщение от _or_75 Посмотреть сообщение
То есть у вас с начало вернёт одно значение а когда вызов будет второй, вернёт другое значение.
То есть с каждым вызовом значение другое.

Например нужно вернуть 1 и 2, у вас с начало вернёт 1 а в следующем вызове вернёт 2, потом 1 и опять 2 и т. д.
.... это 2 вызова, а не 1.
MastAKK
 Аватар для MastAKK
143 / 134 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
18.12.2013, 17:23     Возврат 2 значений из функции с одним вызовом этой же функции #10
_or_75, хм, а если так?
C++
1
2
3
4
5
6
7
8
9
10
11
int function(){
    static bool callOne = true;
    if(callOne){
       callOne = !callOne;
       return 1;
    }
    else{
       callOne = !callOne;
       return 2;
    }
}
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
18.12.2013, 17:26     Возврат 2 значений из функции с одним вызовом этой же функции #11
Цитата Сообщение от MastAKK Посмотреть сообщение
_or_75, хм, а если так?
C++
1
2
3
4
5
6
7
8
9
10
11
int function(){
    static bool callOne = true;
    if(callOne){
       callOne = !callOne;
       return 1;
    }
    else{
       callOne = !callOne;
       return 2;
    }
}

Не по теме:

плагиатор)))

MastAKK
18.12.2013, 17:28
  #12

Не по теме:

dzrkot,

Цитата Сообщение от dzrkot Посмотреть сообщение
плагиатор)))
не заметил, честно)

_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:28  [ТС]     Возврат 2 значений из функции с одним вызовом этой же функции #13
Цитата Сообщение от MastAKK Посмотреть сообщение
_or_75, хм, а если так?
C++
1
2
3
4
5
6
7
8
9
10
11
int function(){
    static bool callOne = true;
    if(callOne){
       callOne = !callOne;
       return 1;
    }
    else{
       callOne = !callOne;
       return 2;
    }
}
даже если так
MastAKK
 Аватар для MastAKK
143 / 134 / 12
Регистрация: 13.10.2012
Сообщений: 586
Записей в блоге: 1
18.12.2013, 17:29     Возврат 2 значений из функции с одним вызовом этой же функции #14
Цитата Сообщение от _or_75 Посмотреть сообщение
даже если так
что?
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
18.12.2013, 17:32     Возврат 2 значений из функции с одним вызовом этой же функции #15

Не по теме:

по-моему автор темы неадекватен.


уважаемый, вы можете нормально выразить вашу мысль и привести пример, или выложить ваш код, в котором необходимо реализовать сие чудесное бессмысленное действо?...

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

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

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

как то так.

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

Добавлено через 1 минуту
Цитата Сообщение от _or_75 Посмотреть сообщение
Надо сделать так чтобы была и [зажата] и [нажата и опущена]
кстати да, условия противоречат друг другу
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
18.12.2013, 17:40     Возврат 2 значений из функции с одним вызовом этой же функции #19
это уже RTOS попахивает, и опросом кнопки по таймеру))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.12.2013, 17:40     Возврат 2 значений из функции с одним вызовом этой же функции
Еще ссылки по теме:

C++ Проблемы с вызовом функции
C++ Распечатать таблицы значений функций cox (x) и на отрезке [a; b] с шагом h, развив функции в ряд Тейлора и используя указатели на функции
C++ Расчёт значений двумерного массива и их возврат в main() с однократным вызовом функции

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

Или воспользуйтесь поиском по форуму:
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
18.12.2013, 17:40  [ТС]     Возврат 2 значений из функции с одним вызовом этой же функции #20
Цитата Сообщение от MastAKK Посмотреть сообщение
Черт, так бы сразу и сказал.
Во-первых. сработает, просто руки должны правильно расти.
Во-вторых. Отлавливаешь код кнопки, через if или switch проверяешь нужное значение. А функцию вызываешь в цикле
да но коды клавиш в игре отличаются от системных, если бы этого не было я бы просто
вернул результат 1 [что клавиша зажата но не опущена], и перед этим симулировал обычное нажатие.
Yandex
Объявления
18.12.2013, 17:40     Возврат 2 значений из функции с одним вызовом этой же функции
Ответ Создать тему
Опции темы

Текущее время: 22:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru