![]() |
|
|
![]()
|
|
| erslgoeirjh |
|
||||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 16.12.2005 Репутация: нет Всего: нет |
Я создал в Visual Studio 2008 DLL (консольное приложение, которое я пометил галочкой при создании как DLL), которая экспортирует класс, и создал приложение, которое загружает эту DLL и импортирует оттуда этот класс:
1) библиотека MyFirstDll.dll: файл stdafx.h :
файл MyFirstDll.h :
файл dllmain.cpp :
2) вызывающая программа CallMyFirstDll : файл stdafx.h :
файл MyFirstDll.h :
файл CallMyFirstDll.cpp :
В связи с этим у меня есть два вопроса: Откуда я взял работающий код и немного его переделал. Вот что у меня получилось: 1) Нужно ли в моём классе MyClass объявлять его данные и методы как static, или можно обойтись без этого? 2) Я хочу в функциях моей DLL использовать глобальные переменные, объявленные и инициализированные в основной программе, которая вызывает эту DLL. Как это сделать? И можно ли в функциях DLL изменять значения этих глобальных переменных--и если да, то как? |
||||||||||||
|
|||||||||||||
| baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
dll про вашу основную программу ничего не знает, так что напрямую никак. но в интерфейс dll можно включить функцию, которой будете передавать адрес переменной из основной программы.
не нужно. к dll это не относится. |
||||
|
|||||
| erslgoeirjh |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 16.12.2005 Репутация: нет Всего: нет |
То есть надо написать что-то вроде
? (Где ivar, lvar, fvar, ldvar--указатели на соответствующие переменные в основной программе). И надо ли эти указатели ivar, lvar, fvar, ldvar объявлять глобальными переменными в файлах моего DLL? И стоит ли использовать слово extern при их объявлении? |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
|
|||
|
||||
| erslgoeirjh |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 16.12.2005 Репутация: нет Всего: нет |
Ясно. Последний вопрос--код:
следует поместить в файл MyFirstDll.h ? |
|||
|
||||
| vol4ek |
|
|||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: -1 Всего: 0 |
Добавлено через 6 минут и 20 секунд там AfxInitExtensionModule ни о чем не говорит? смысл этой dll если вся реализация в файле MyFirstDll.h? |
|||
|
||||
| erslgoeirjh |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 147 Регистрация: 16.12.2005 Репутация: нет Всего: нет |
Это просто тестовое DLL и тестовая программа, которая вызывает это DLL. |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 1 Всего: 101 |
erslgoeirjh, в MyFirstDll.cpp
а в MyFirstDll.h должно быть объявление функции |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |