Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
korez
8 / 8 / 1
Регистрация: 22.02.2011
Сообщений: 187
1

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

08.03.2014, 12:46. Просмотров 975. Ответов 5
Метки нет (Все метки)

объявление я сделал в .h файле но так как структуру нужно создать то вопрос в каком файле это делать и где(проект win32, Visual studio 2012).
C++
1
2
3
4
5
struct mystruct
{ int a;
   int b; }
//объявлял так
mystruct mystruct1;
я объявлял
1 в главном файле до начало всех функции но полсе подключения .h файлов
2. в файле где есть функция dllmain(у меня отдельный файл)
3. если объявлю в акдом файле где испоьзуется структура то происходит "очевидное" переопределение
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2014, 12:46
Ответы с готовыми решениями:

Объявление глобальной перемнной класса в формах
Здравствуйте. Как объявлять глобальную переменную класса? выдает ошибку Ошибка член класса...

При объявлении структуры глобальной программа падает
Всем привет! Сразу говорю, это пример кода. Не вижу смысла все тут переписывать, я просто накидал...

Объявление структуры
Я объявляю структуру так: typedef struct { BYTE aaa; BYTE bbb; short ccc; int ddd;...

Объявление структуры и класса
Ругается на строку obj_cls.prv=3; и на объявление класса. Что у меня не правильно? #include...

Объявление структуры в свитче
Здравствуйте, имеется 3 заполненные структуры, с одинаковыми полями, но разными значениями в них. ...

5
kventin_zhuk
БНТУ ФИТР
215 / 155 / 42
Регистрация: 26.12.2012
Сообщений: 382
08.03.2014, 14:07 2
Лучший ответ Сообщение было отмечено korez как решение

Решение

korez, в h файле. Его уже подключаете куда требуется. dllMain файл пихаете реалихацию этих функций. При подключении h-ника с помощью дирректив препроцессора идет проверка на переопределение. Так что заэто не переживайте
1
ValeryS
Модератор
7783 / 5786 / 754
Регистрация: 14.02.2011
Сообщений: 19,791
Завершенные тесты: 1
08.03.2014, 14:13 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;
то сойдет с ума линкер, нет переменных
1
korez
8 / 8 / 1
Регистрация: 22.02.2011
Сообщений: 187
08.03.2014, 14:35  [ТС] 4
<<это если в одной единице трансляции а если в разных?>>
нет не в .h файлах а файлах где я использовал свою структуру.
0
ValeryS
Модератор
7783 / 5786 / 754
Регистрация: 14.02.2011
Сообщений: 19,791
Завершенные тесты: 1
08.03.2014, 14:48 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;
так понятней?
1
korez
8 / 8 / 1
Регистрация: 22.02.2011
Сообщений: 187
08.03.2014, 18:10  [ТС] 6
ValeryS, да, да все заработало когдая все глобальные объявления , не только струтуры, перенес в .h файл.
0
08.03.2014, 18:10
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2014, 18:10

Не понимаю объявление структуры
Разбираю это кусок кода struct TGAColor { union { struct { ...

Объявление и определение глобального массива структуры
Есть структура struct DatSob { int year; // Год события int month; // Месяц...

Объявление стека как члена структуры
Добрый день. Пытаюсь объявить структуру, содержащую стэк struct labirint { int A; int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru