![]() |
|
|
![]()
|
|
| petlyura |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 30.1.2008 Где: Харьков Репутация: 2 Всего: 2 |
Есть два exe-файла и статическая библиотека. Как сделать так, чтобы переменные (строковые, целые) были доступны везде (в этих 2 исполн. файлах и библиотеке)?
Например, меняю значение переменной Path = "C://"; в 1.exe, после этого читаю в 2.exe значение Dir = Path; или в библиотеке Dir = Path; и Dir получается,равным Path. Объявлял эти переменные в статич.библ. как
В файлах стат.библ., использующих эти переменные, указанно #define SUBD_DLL в ехе: #define SUBD_APP и подключен файл, где определены, Path и GraphTimesInterval. Работает! А потом пишу новые классы, функциональность и т.п. и перестает работать. Где-то получается 3 варианта: Dir = Path; Отладчик показывает значения переменных 1) Dir = NULL; Path = NULL, хотя до этого Path = "C:\\" 2) Dir = NULL; Path = "C:\\"; 3) Dir = "C:\\"; Path = NULL; это вообще самое удивительное. Подозреваю, что может это как-то зависит от подключения файлов, а то у меня как-то лихо накручено, например, есть client.h, kadr.h, dbd.h В client'e #include "kadr.h" #include "dbd.h" В kadr'e #include "dbd.h" Только все в больших масштабах. Подскажите, пожалуйста, решение |
|||
|
||||
| petlyura |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 30.1.2008 Где: Харьков Репутация: 2 Всего: 2 |
Млин, нестабильно все это!
Может в реестр писать и читать оттуда, чтоб наверняка? Писать в файл не надежно, т.к. GetCurrentDir() в зависимости от того, где прога гуляет (у меня кучу директорий вокруг, откуда берутся рисунки, файлы описания и все такое), может выдавать разные значения. И я могу файл не найти или его удалят. |
|||
|
||||
| Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
в статической библиотеке не нужно использовать
можно просто считать что вместо статической библ. у тебя в проекте соответствующий срр файл |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Никак Если у тебя библиотека динамическая, то она будет загруженна в одном экземпляре в каждое приложение, где используется. Но адремные пространства самих приложений друг с другом не пересекаются, т.е. переменные опять же свои собственные у каждого приложения. Однако, в динамической библиотеке можно сделать shared сегмент, все данные в нем будут общими для всех экземпляров данной библиотеке во всех программах, где она используется. Однако это сложно использовать по 3м причинам:
|
|||
|
||||
| petlyura |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 30.1.2008 Где: Харьков Репутация: 2 Всего: 2 |
Я неверно объяснил проблему. Exe-файлы запускаются независимо друг от друга, при этом обычно запущена лишь одна exe. Мне не надо, чтобы данные из одной exe были видны в другой, они независимы. Надо только, чтобы были видны в одной из exe и библиотеке. Я пока решил эту проблему, но окольными путями. Если что буду делать через реестр |
|||
|
||||
![]()
|
| Правила форума "С++ 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. |