|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.06.2015, 17:36 | #1 |
Регистрация: 03.06.2015
Сообщений: 3
|
Передача переменных при вызове функции между модулями
Здравствуйте.
Переводится программа с VCL формой из Delphi в С++. В главное модуле VCL форма, во втором модуле Unit без формы. В главном модуле (pas) определяются переменные, объявленные во втором модуле, и вызывается функция из второго модуля без параметров, однако переменные всё же передаются. Вызов функции происходит в процедуре AppIdle до определённого момента по условию (if параметр = true then Done = false). В Delphi после вызова функции происходит выполнение функции во втором модуле, после завершения выполнения происходит возврат в процедуру AppIdle, однако переменные, изменённые во втором модуле, сохраняют свои значения. При переводе в С++ в аналогичной функции AppIdle при вызове функции в главном модуле с VCL формой (cpp) без параметров переменные не передаются во второй модуль Unit (cpp) и при вызове функции никакие переменные не изменяются при присваивании. Если указать в параметрах вызываемой функции переменные - они передаются в функцию и значения изменяются, однако при завершении выполнения вызываемой функции переменные не сохраняют свои изменённые значения. После возврата в главный модуль и вызове повторно функции из второго модуля передаются стартовые значения, а не изменённые. Объявление в главном модуле переменных extern не помогает (возможно неверно). Каким образом в С++ организовать передачу параметров функции между модулями аналогично Delphi? Если нужно будет предоставлю код и уточню детали. Заранее спасибо. |
03.06.2015, 19:37 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Воспользуйтесь ссылками:
void function(int & arg) { arg = 123; } |
03.06.2015, 19:42 | #3 |
Регистрация: 03.06.2015
Сообщений: 3
|
|
03.06.2015, 19:45 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
04.06.2015, 03:09 | #5 |
Регистрация: 03.06.2015
Сообщений: 3
|
Спасибо за ответы, но решение нашёл другое.
Ключевое это объявление переменных через extern в header файле (второго модуля) и дубль объявления переменных без extern в cpp файле (второго модуля). Передавать переменные в функции при этом не требуется, вызов функции требуется оставить без параметров. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при вызове функции | Vilkas | Помощь студентам | 2 | 19.12.2014 06:18 |
Передача данных(переменных) между двумя пользователями. (AJAX?) | Mr_freeman | JavaScript, Ajax | 7 | 08.03.2012 23:56 |
Передача данных между модулями. C++ | paravoz1k | Помощь студентам | 3 | 13.12.2011 11:12 |
Передача переменных между процедурами | Wi1D | Помощь студентам | 2 | 14.12.2008 23:55 |
передача переменных между страницами | fufel | JavaScript, Ajax | 10 | 22.10.2007 17:04 |