Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 174
от 18.01.2003, 10:10

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 530
Отправлено ответов: 1157
Активность: 218.3 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Yuri Gordienko
Статус: Опытный
Общий рейтинг: 115.01
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 107.69
[Подробней >>]
Ramzes
Статус: Начальный
Общий рейтинг: 122.41
[Подробней >>]
 
Jadd
Статус: Профессиональный
Общий рейтинг: 144.07
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 114.08
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 522. Здраствуйте, ПОдскажите плз, такую фишку: можно ли динамически создавать класс, который лежит в дина... (ответов: 5)

Вопросов: 1, ответов: 5


 Вопрос № 522

Здраствуйте,
ПОдскажите плз, такую фишку:
можно ли динамически создавать класс, который лежит в динамически линкуемой(loadlibrary) dll.
т.е.: X* x=new x(....), где класс х находится в dll/



Вопрос отправлен: 15.01.2003, 10:09
Отправитель: Dzik (dzik@newmail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Yuri Gordienko

Приветствую Вас, Dzik!
Как говаривал когда-то один мой препод: "Все можно, - только людей убивать нельзя".
Реализация 90% классов и функций, которые ты вызываешь и так находятся в динамических библиотеках.

Ответ отправлен: 15.01.2003, 10:20
Отправитель: Yuri Gordienko


Отвечает vitya

Приветствую Вас, Dzik!
Если в VC, то создай проект - win32 dll и выбери опцию a dll that exports some symbols. Там будет создана экспортируемая функция, переменная и класс. Просто поменяй название класс на твое и все будет работать.
Да, а для использования длл тебе нужен будет h файл.

Ответ отправлен: 15.01.2003, 10:31
Отправитель: vitya


Отвечает Ramzes

Доброе время суток, Dzik!
Во первых, сначала ты должен экспортироватъ этот класс, то естъ в этои DLL перед объявлением класса ты дольен написатъ следующую фигулъку - _declspec(dllexport).
Послее чего ты должен в сккомпоноватъ енту DLL со своим проектом статически, иначе никак невозможно исполъзоватъ етот класс. И в конце концов в своем проекте ты должен включитъ заголовочнынй (header) файл где находится объявление данного класса, но на этот раз перед объявлением класса должна стоятъ следующая фигулъка -
_declspec(dllimport).
смотри прил.

Приложение:

Ответ отправлен: 15.01.2003, 10:31
Отправитель: Ramzes


Отвечает Jadd

Добрый день, Dzik!
Можно. Но там достаточно гиморрно все это. Читай на www.rsdn.ru там есть.

Ответ отправлен: 15.01.2003, 15:07
Отправитель: Jadd


Отвечает baldr

Доброе время суток, Dzik!
Ну, понимаешь, компилятору необходимо знать тип и размер класса, чтобы создать на него ссылку.
То есть, тебе надо в файле импорта или h-Файле указать все это.
Я предполагаю, что ты хочешь одну программу расширяемой - с универсальными методами, но
разными классами? Вряд ли это можно сделать таким образом. Лучше в этой dll-библиотеке
создать промежуточную функцию, которая и будет создавать этот класс сама - она-то будет все
необходимое знать!


Ответ отправлен: 16.01.2003, 00:48
Отправитель: baldr



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (34)
C / C++ (29)
Perl (5)
Delphi (18)
Pascal (22)
Basic / VBA (12)
Java / JavaScript (7)
PHP (6)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (35)
Windows NT/2000/XP (27)
"Железо" (33)
Поиск информации (19)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (14)
Юристу
Гражданское право (9)
Семейное право (6)
Трудовое право (5)
КоАП (3)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное