Экспорт класса
От: Аноним  
Дата: 03.10.10 15:40
Оценка:
Слышал я, что dll может экспортировать классы, у меня есть свой класс, скажите, каким образом это сделать? Как экспортировать класс из длл?
Re: Экспорт класса
От: Centaur Россия  
Дата: 03.10.10 17:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Слышал я, что dll может экспортировать классы, у меня есть свой класс, скажите, каким образом это сделать? Как экспортировать класс из длл?


Лучше всего никак.
Re: Экспорт класса
От: Сергей Савостин Украина  
Дата: 03.10.10 17:26
Оценка:
А>Слышал я, что dll может экспортировать классы, у меня есть свой класс, скажите, каким образом это сделать? Как экспортировать класс из длл?
Как и функции:

class __declspec(dllexport) TMyClass
{
};


__declspec(dllimport) соответственно при импорте.
Единственное "но" — видно будет только в приложении, скомпилированном тем же компилятором.
Ну, и там, никаких наследований от VCL-компонентов, конечно же (вернее можно только формы создавать, там проблема с Parent имеется)
Re[2]: Экспорт класса
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 04.10.10 07:27
Оценка:
Здравствуйте, Сергей Савостин, Вы писали:

А>>Слышал я, что dll может экспортировать классы, у меня есть свой класс, скажите, каким образом это сделать? Как экспортировать класс из длл?

СС>Как и функции:

СС>
СС>class __declspec(dllexport) TMyClass
СС>{
СС>};
СС>


СС>__declspec(dllimport) соответственно при импорте.

СС>Единственное "но" — видно будет только в приложении, скомпилированном тем же компилятором.
СС>Ну, и там, никаких наследований от VCL-компонентов, конечно же (вернее можно только формы создавать, там проблема с Parent имеется)

Путь граблей в темной комнате. Не нужно этого делать. Если уж очень хочется — BPL в руки.
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[3]: Экспорт класса
От: Nemando Россия  
Дата: 04.10.10 10:03
Оценка:
Здравствуйте, DarkMaster, Вы писали:
"Если уж очень хочется — BPL в руки"
а почему бы не воспользоваться Com-технологией?
Re[4]: Экспорт класса
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 04.10.10 10:17
Оценка:
Здравствуйте, Nemando, Вы писали:

N>"Если уж очень хочется — BPL в руки"

N>а почему бы не воспользоваться Com-технологией?

Этому тоже ничего не мешает — bpl приведен как один из стандартных вариантов, предлагаемых самим производителем.
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[5]: Экспорт класса
От: Nemando Россия  
Дата: 05.10.10 09:24
Оценка:
Здравствуйте, DarkMaster, Вы писали:

DM>Здравствуйте, Nemando, Вы писали:


N>>"Если уж очень хочется — BPL в руки"

N>>а почему бы не воспользоваться Com-технологией?

DM>Этому тоже ничего не мешает — bpl приведен как один из стандартных вариантов, предлагаемых самим производителем.


Согласен, но только если не придется использовать потом данный класс на Visual Studio или еще чем то (не Borland)
Re[6]: Экспорт класса
От: BlackEric http://black-eric.lj.ru
Дата: 05.10.10 09:55
Оценка: +1
Здравствуйте, Nemando, Вы писали:

N>Здравствуйте, DarkMaster, Вы писали:


DM>>Здравствуйте, Nemando, Вы писали:


N>>>"Если уж очень хочется — BPL в руки"

N>>>а почему бы не воспользоваться Com-технологией?

DM>>Этому тоже ничего не мешает — bpl приведен как один из стандартных вариантов, предлагаемых самим производителем.


N>Согласен, но только если не придется использовать потом данный класс на Visual Studio или еще чем то (не Borland)


Класс из dll можно экспортировать только если dll и exe скомпилированы одним и те же компилятором.
Причем крайне желательно одной и той же версией.
https://github.com/BlackEric001
Re[7]: Экспорт класса
От: Аноним  
Дата: 05.10.10 10:36
Оценка:
Здравствуйте, BlackEric, Вы писали:

BE>Здравствуйте, Nemando, Вы писали:


N>>Здравствуйте, DarkMaster, Вы писали:


DM>>>Здравствуйте, Nemando, Вы писали:


N>>>>"Если уж очень хочется — BPL в руки"

N>>>>а почему бы не воспользоваться Com-технологией?

DM>>>Этому тоже ничего не мешает — bpl приведен как один из стандартных вариантов, предлагаемых самим производителем.


N>>Согласен, но только если не придется использовать потом данный класс на Visual Studio или еще чем то (не Borland)


BE>Класс из dll можно экспортировать только если dll и exe скомпилированы одним и те же компилятором.

BE>Причем крайне желательно одной и той же версией.

Я и планирую использовать данную длл только там, где и писалась программа! Кстати, код приведен на
языке с++, а можете показать как он выглядит на Object Pascal?
Re[7]: Экспорт класса
От: DarkMaster Украина http://www.bdslib.at.ua
Дата: 05.10.10 16:24
Оценка:
Здравствуйте, BlackEric, Вы писали:

N>>Согласен, но только если не придется использовать потом данный класс на Visual Studio или еще чем то (не Borland)


BE>Класс из dll можно экспортировать только если dll и exe скомпилированы одним и те же компилятором.

BE>Причем крайне желательно одной и той же версией.

Дернуть метод созданного в длл класса может и удастся (основываемся на том, что таблицы методов у нас идентичны), а вот при создании-разрушении уже будет кучка спецэффектов т.к. менеджеры памяти у нас разные. Малейшие поползновения в сторону чего-либо (ну например в длл использовали несколько другой класс или переставили методы местами в классе) — опять будут грабли. Однозначно — это путь ситхов
WBR, Dmitry Beloshistov AKA [-=BDS=-]
Re[7]: Экспорт класса
От: Nemando Россия  
Дата: 06.10.10 08:30
Оценка:
Здравствуйте, BlackEric, Вы писали:

BE>Класс из dll можно экспортировать только если dll и exe скомпилированы одним и те же компилятором.

BE>Причем крайне желательно одной и той же версией.

Я говорил не просто о dll, а о dll, содержащих com-класс, одно из преимуществ com-технологии — возможность использовать классы, под другим компилятором!
Наслаждайтесь: developing.ru > технология COM, прочтите, а потом попробуйте повторить то, что Вы сказали
Re[8]: Экспорт класса
От: Аноним  
Дата: 19.10.10 20:40
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я и планирую использовать данную длл только там, где и писалась программа! Кстати, код приведен на

А>языке с++, а можете показать как он выглядит на Object Pascal?

Если память не изменяет, в Delphi так и не разрешили экспорт классов.
Re[6]: Экспорт класса
От: mike_rs Россия  
Дата: 01.11.10 10:13
Оценка:
Здравствуйте, Nemando, Вы писали:

N>Здравствуйте, DarkMaster, Вы писали:


DM>>Здравствуйте, Nemando, Вы писали:


N>>>"Если уж очень хочется — BPL в руки"

N>>>а почему бы не воспользоваться Com-технологией?

DM>>Этому тоже ничего не мешает — bpl приведен как один из стандартных вариантов, предлагаемых самим производителем.

N>Согласен, но только если не придется использовать потом данный класс на Visual Studio или еще чем то (не Borland)

не получится потом еще где-то использовать — только на том-же компиляторе и, скорее всего, той-же версии
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.