Здравствуйте, Nemando, Вы писали:
N>Здравствуйте, DarkMaster, Вы писали:
DM>>Здравствуйте, Nemando, Вы писали:
N>>>"Если уж очень хочется — BPL в руки" N>>>а почему бы не воспользоваться Com-технологией?
DM>>Этому тоже ничего не мешает — bpl приведен как один из стандартных вариантов, предлагаемых самим производителем.
N>Согласен, но только если не придется использовать потом данный класс на Visual Studio или еще чем то (не Borland)
Класс из dll можно экспортировать только если dll и exe скомпилированы одним и те же компилятором.
Причем крайне желательно одной и той же версией.
Здравствуйте, Аноним, Вы писали:
А>Слышал я, что dll может экспортировать классы, у меня есть свой класс, скажите, каким образом это сделать? Как экспортировать класс из длл?
А>Слышал я, что dll может экспортировать классы, у меня есть свой класс, скажите, каким образом это сделать? Как экспортировать класс из длл?
Как и функции:
class __declspec(dllexport) TMyClass
{
};
__declspec(dllimport) соответственно при импорте.
Единственное "но" — видно будет только в приложении, скомпилированном тем же компилятором.
Ну, и там, никаких наследований от VCL-компонентов, конечно же (вернее можно только формы создавать, там проблема с Parent имеется)
Здравствуйте, Сергей Савостин, Вы писали:
А>>Слышал я, что dll может экспортировать классы, у меня есть свой класс, скажите, каким образом это сделать? Как экспортировать класс из длл? СС>Как и функции:
СС>
СС>__declspec(dllimport) соответственно при импорте. СС>Единственное "но" — видно будет только в приложении, скомпилированном тем же компилятором. СС>Ну, и там, никаких наследований от VCL-компонентов, конечно же (вернее можно только формы создавать, там проблема с Parent имеется)
Путь граблей в темной комнате. Не нужно этого делать. Если уж очень хочется — BPL в руки.
Здравствуйте, DarkMaster, Вы писали:
DM>Здравствуйте, Nemando, Вы писали:
N>>"Если уж очень хочется — BPL в руки" N>>а почему бы не воспользоваться Com-технологией?
DM>Этому тоже ничего не мешает — bpl приведен как один из стандартных вариантов, предлагаемых самим производителем.
Согласен, но только если не придется использовать потом данный класс на Visual Studio или еще чем то (не Borland)
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?
Здравствуйте, BlackEric, Вы писали:
N>>Согласен, но только если не придется использовать потом данный класс на Visual Studio или еще чем то (не Borland)
BE>Класс из dll можно экспортировать только если dll и exe скомпилированы одним и те же компилятором. BE>Причем крайне желательно одной и той же версией.
Дернуть метод созданного в длл класса может и удастся (основываемся на том, что таблицы методов у нас идентичны), а вот при создании-разрушении уже будет кучка спецэффектов т.к. менеджеры памяти у нас разные. Малейшие поползновения в сторону чего-либо (ну например в длл использовали несколько другой класс или переставили методы местами в классе) — опять будут грабли. Однозначно — это путь ситхов
Здравствуйте, BlackEric, Вы писали:
BE>Класс из dll можно экспортировать только если dll и exe скомпилированы одним и те же компилятором. BE>Причем крайне желательно одной и той же версией.
Я говорил не просто о dll, а о dll, содержащих com-класс, одно из преимуществ com-технологии — возможность использовать классы, под другим компилятором!
Наслаждайтесь: developing.ru > технология COM, прочтите, а потом попробуйте повторить то, что Вы сказали
Re[8]: Экспорт класса
От:
Аноним
Дата:
19.10.10 20:40
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Я и планирую использовать данную длл только там, где и писалась программа! Кстати, код приведен на А>языке с++, а можете показать как он выглядит на Object Pascal?
Если память не изменяет, в Delphi так и не разрешили экспорт классов.
Здравствуйте, Nemando, Вы писали:
N>Здравствуйте, DarkMaster, Вы писали:
DM>>Здравствуйте, Nemando, Вы писали:
N>>>"Если уж очень хочется — BPL в руки" N>>>а почему бы не воспользоваться Com-технологией?
DM>>Этому тоже ничего не мешает — bpl приведен как один из стандартных вариантов, предлагаемых самим производителем. N>Согласен, но только если не придется использовать потом данный класс на Visual Studio или еще чем то (не Borland)
не получится потом еще где-то использовать — только на том-же компиляторе и, скорее всего, той-же версии