![]() |
|
|
![]()
|
|
| biosonar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.4.2014 Репутация: нет Всего: нет |
Здравствуйте.
Переводится программа с VCL формой из Delphi в С++. В главное модуле VCL форма, во втором модуле Unit без формы. В главном модуле (pas) определяются переменные, объявленные во втором модуле, и вызывается функция из второго модуля без параметров, однако переменные всё же передаются. Вызов функции происходит в процедуре AppIdle до определённого момента по условию (if параметр = true then Done = false). В Delphi после вызова функции происходит выполнение функции во втором модуле, после завершения выполнения происходит возврат в процедуру AppIdle, однако переменные, изменённые во втором модуле, сохраняют свои значения. При переводе в С++ в аналогичной функции AppIdle при вызове функции в главном модуле с VCL формой (cpp) без параметров переменные не передаются во второй модуль Unit (cpp) и при вызове функции никакие переменные не изменяются при присваивании. Если указать в параметрах вызываемой функции переменные - они передаются в функцию и значения изменяются, однако при завершении выполнения вызываемой функции переменные не сохраняют свои изменённые значения. После возврата в главный модуль и вызове повторно функции из второго модуля передаются стартовые значения, а не изменённые. Объявление в главном модуле переменных extern не помогает (возможно неверно). Каким образом в С++ организовать передачу параметров функции между модулями аналогично Delphi? Если нужно будет предоставлю код и уточню детали. Заранее спасибо. |
|||
|
||||
| biosonar |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.4.2014 Репутация: нет Всего: нет |
Во блин, форум-то мёртв. А я и не заметил по сообщениям. Зачем за домен то платить? Удаляйте это заброшенное место, чтобы не вводить людей в заблуждение
|
|||
|
||||
| rudolfninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 341 Регистрация: 19.2.2013 Где: г. Минск Репутация: нет Всего: 6 |
Здравствуйте, ну, во-первых, форум вполне себе живой. Вы не видели мертвых форумов, видимо.
То, что вам не ответили в течение 10 часов не значит, что форум мертвый. Во-вторых: Прочитайте про передачу параметров в функции и поймете, что вы делали не так. Это сообщение отредактировал(а) rudolfninja - 4.6.2015, 10:12 |
|||
|
||||
| Doga |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 20.12.2007 Где: Россия, Обнинск Репутация: нет Всего: нет |
Привет.
Используйте передечу параметра по его адресу. Напр:
Или используйте глобальные переменные - в этом случае можно вообще отказаться от передачи параметров. |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |