Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача пер-х при вызове функции между модулями 
:(
    Опции темы
biosonar
  Дата 3.6.2015, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.4.2014

Репутация: нет
Всего: нет



Здравствуйте.
Переводится программа с VCL формой из Delphi в С++.
В главное модуле VCL форма, во втором модуле Unit без формы.
В главном модуле (pas) определяются переменные, объявленные во втором модуле, и вызывается функция из второго модуля без параметров, однако переменные всё же передаются.
Вызов функции происходит в процедуре AppIdle до определённого момента по условию (if параметр = true then Done = false).
В Delphi после вызова функции происходит выполнение функции во втором модуле, после завершения выполнения происходит возврат в процедуру AppIdle, однако переменные, изменённые во втором модуле, сохраняют свои значения.

При переводе в С++ в аналогичной функции AppIdle при вызове функции в главном модуле с VCL формой (cpp) без параметров переменные не передаются во второй модуль Unit (cpp) и при вызове функции никакие переменные не изменяются при присваивании.
Если указать в параметрах вызываемой функции переменные - они передаются в функцию и значения изменяются, однако при завершении выполнения вызываемой функции переменные не сохраняют свои изменённые значения.
После возврата в главный модуль и вызове повторно функции из второго модуля передаются стартовые значения, а не изменённые.

Объявление в главном модуле переменных extern не помогает (возможно неверно).
Каким образом в С++ организовать передачу параметров функции между модулями аналогично Delphi?

Если нужно будет предоставлю код и уточню детали.
Заранее спасибо.
PM MAIL   Вверх
biosonar
  Дата 4.6.2015, 03:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 9.4.2014

Репутация: нет
Всего: нет



Во блин, форум-то мёртв. А я и не заметил по сообщениям. Зачем за домен то платить? Удаляйте это заброшенное место, чтобы не вводить людей в заблуждение
PM MAIL   Вверх
rudolfninja
Дата 4.6.2015, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: нет
Всего: 6



Здравствуйте, ну, во-первых, форум вполне себе живой. Вы не видели мертвых форумов, видимо.
То, что вам не ответили в течение 10 часов не значит, что форум мертвый.
Во-вторых:

Цитата(biosonar @  3.6.2015,  17:38 Найти цитируемый пост)
Если указать в параметрах вызываемой функции переменные - они передаются в функцию и значения изменяются, однако при завершении выполнения вызываемой функции переменные не сохраняют свои изменённые значения.


Прочитайте про передачу параметров в функции и поймете, что вы делали не так.



Это сообщение отредактировал(а) rudolfninja - 4.6.2015, 10:12
PM MAIL Skype   Вверх
Doga
Дата 5.6.2015, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 20.12.2007
Где: Россия, Обнинск

Репутация: нет
Всего: нет



Привет.

Используйте передечу параметра по его адресу. Напр:
Код
bool __fastcall Function(int &Param);


Или используйте глобальные переменные - в этом случае можно вообще отказаться от передачи параметров.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0406 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.