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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
korez
8 / 8 / 0
Регистрация: 22.02.2011
Сообщений: 182
#1

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

08.03.2014, 12:46. Просмотров 347. Ответов 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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.03.2014, 12:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Объявление и создание глобальной структуры в dll (C++):

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

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

Объявление структуры - C++
Я объявляю структуру так: typedef struct { BYTE aaa; BYTE bbb; short ccc; int ddd; }ABC; Нашёл один пример, где...

Объявление структуры и класса - C++
Ругается на строку obj_cls.prv=3; и на объявление класса. Что у меня не правильно? #include <iostream> using namespace std; ...

Не понимаю объявление структуры - C++
Разбираю это кусок кода struct TGAColor { union { struct { unsigned char b, g, r,...

Объявление структуры в свитче - C++
Здравствуйте, имеется 3 заполненные структуры, с одинаковыми полями, но разными значениями в них. struct a{ int t=5; float b=1,3; ...

5
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
08.03.2014, 14:07 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
korez, в h файле. Его уже подключаете куда требуется. dllMain файл пихаете реалихацию этих функций. При подключении h-ника с помощью дирректив препроцессора идет проверка на переопределение. Так что заэто не переживайте
1
ValeryS
Модератор
6673 / 5082 / 474
Регистрация: 14.02.2011
Сообщений: 17,048
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 / 0
Регистрация: 22.02.2011
Сообщений: 182
08.03.2014, 14:35  [ТС] #4
<<это если в одной единице трансляции а если в разных?>>
нет не в .h файлах а файлах где я использовал свою структуру.
0
ValeryS
Модератор
6673 / 5082 / 474
Регистрация: 14.02.2011
Сообщений: 17,048
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 / 0
Регистрация: 22.02.2011
Сообщений: 182
08.03.2014, 18:10  [ТС] #6
ValeryS, да, да все заработало когдая все глобальные объявления , не только струтуры, перенес в .h файл.
0
08.03.2014, 18:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.03.2014, 18:10
Привет! Вот еще темы с ответами:

Объявление стека как члена структуры - C++
Добрый день. Пытаюсь объявить структуру, содержащую стэк struct labirint { int A; int starta, startb; stack&lt;pair&lt;int,...

Объявление указателя на структуру в объявлении структуры - C++
struct node { int data; struct node * next; }; Зачем может понадобится такое объявление?

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

Различие глобальной и глобальной статической переменной - C++
у нас есть заголовочный файл со стражами, допустим global.h , его используют несколько других хейдеров и с++ файлов . когда там описаны...


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

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

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