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

Объявление и создание глобальной структуры в dll - C++

Восстановить пароль Регистрация
 
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
08.03.2014, 12:46     Объявление и создание глобальной структуры в dll #1
объявление я сделал в .h файле но так как структуру нужно создать то вопрос в каком файле это делать и где(проект win32, Visual studio 2012).
C++
1
2
3
4
5
struct mystruct
{ int a;
   int b; }
//объявлял так
mystruct mystruct1;
я объявлял
1 в главном файле до начало всех функции но полсе подключения .h файлов
2. в файле где есть функция dllmain(у меня отдельный файл)
3. если объявлю в акдом файле где испоьзуется структура то происходит "очевидное" переопределение
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
08.03.2014, 14:07     Объявление и создание глобальной структуры в dll #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
korez, в h файле. Его уже подключаете куда требуется. dllMain файл пихаете реалихацию этих функций. При подключении h-ника с помощью дирректив препроцессора идет проверка на переопределение. Так что заэто не переживайте
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,063
08.03.2014, 14:13     Объявление и создание глобальной структуры в dll #3
Цитата Сообщение от kventin_zhuk Посмотреть сообщение
При подключении h-ника с помощью дирректив препроцессора идет проверка на переопределение.
щаз еше
это если в одной единице трансляции а если в разных?
Цитата Сообщение от korez Посмотреть сообщение
C++
1
2
3
4
5
struct mystruct
{ int a;
   int b; }
//объявлял так
mystruct mystruct1;
сделай так
C++
1
2
3
4
struct mystruct
{ int a;
   int b; }
extern mystruct mystruct1;
а в каком то одном файле
C++
1
mystruct mystruct1;
структура один раз создастся
тогда компилятор будет знать что структура где то объявлена и с ума не сойдет

но если не сделаешь
C++
1
mystruct mystruct1;
то сойдет с ума линкер, нет переменных
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
08.03.2014, 14:35  [ТС]     Объявление и создание глобальной структуры в dll #4
<<это если в одной единице трансляции а если в разных?>>
нет не в .h файлах а файлах где я использовал свою структуру.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,063
08.03.2014, 14:48     Объявление и создание глобальной структуры в dll #5
Цитата Сообщение от korez Посмотреть сообщение
нет не в .h файлах а файлах где я использовал свою структуру.
а причем здесь h файлы?
единица трансляции это С файлы

еще раз помедленнее
file1.h

C++
1
2
3
4
struct mystruct
{ int a;
   int b; }
extern mystruct mystruct1;
file1.c
C++
1
2
3
4
include "file1.h"
mystruct mystruct1; // один раз в одном файле
...........................
mystruct1.a=5;
file2.c
C++
1
2
3
include "file1.h"
..........................
mystruct1.a=6;
file3.c

C++
1
2
3
4
include "file1.h"
.......................
 
mystruct1.a=5;
так понятней?
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 179
08.03.2014, 18:10  [ТС]     Объявление и создание глобальной структуры в dll #6
ValeryS, да, да все заработало когдая все глобальные объявления , не только струтуры, перенес в .h файл.
Yandex
Объявления
08.03.2014, 18:10     Объявление и создание глобальной структуры в dll
Ответ Создать тему
Опции темы

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