Отсюда вопрос: Можно ли изнутри библиотеки воспрепятствовать её включению в референцы проекта? И желательно бы - с сообщением

И ещё вопрос: может ли библиотека сама определить, прописана ли она в референцы или создана методом CreateObject?
arthur2 писал(а):может ли библиотека сама определить, ... создана методом CreateObject?
arthur2 писал(а):Подключается к проекту поздним связыванием.
Можно ли изнутри библиотеки воспрепятствовать её включению в референцы проекта?
И ещё вопрос: может ли библиотека сама определить, прописана ли она в референцы или создана методом CreateObject?
Отсюда вопрос: Можно ли изнутри библиотеки воспрепятствовать её включению в референцы проекта? И желательно бы - с сообщением
Я и не противопоставлял! А противопоставление ты увидел, потому что всегда его видишь :) Я знаю, что через CreateObject можно создать объект раннего связывания - если его класс будет объявлен в тбл. И вовсю этим пользуюсь :) И, кстати, просветил в этом вопросе меня именно ты :)Хакер писал(а):Это массовое заблуждение которое меня сильно бьёт: считают, что есть раннее связывание и позднее связывание — две противоположенные вещи. При этом считают, что раннее связывание это когда «через References», а позднее — «с помощью CreateObject».
А как её тогда вообще юзать?
Пардону... просто криво выразился.CtreateObject, если я не ошибаюсь, создает экземпляр класса (и то не она лично) и возвращает ссылку на него, а библиотеки она ни какие не создает.
Не поможет - инициализация произойдет, как бы класс ни создавался, хоть через нью, хоть CreateObjectСоответственно в методе инициализации класса можно прописать обработчик, который должен выполнятся при создании нового экземпляра класса.
arthur2 писал(а):через CreateObject можно создать объект раннего связывания
В данном конкретном случае у меня связывание позднее просто потому, что объект как таковой я практически не использую - у него единственный метод, которым я один раз получаю адрес процедуры из модуля внутри библиотеки и передаю в этот модуль свой адрес процедуры. А потом библа и мой проект начинают общаться напрямую, без использования методов объекта. Так что раннее связывание мне просто не нужно. (а вовсе не потому, что я не смог бы его организовать через тлб)
Я хочу избежать подключения через референсы, потому что библиотека предназначина только для отладки. В экзешнике она не должна работать, да и не сможет
Через CreateObject, заключенный в условную компиляцию - чтобы в экзешнике не осталось ни малейшего упоминания о моей библиотеке
Суть я понимаю, а чтобы корректно выразиться, знаний не хватаетХакер писал(а):через CreateObject можно создать объект раннего связывания
Ну фраза ведь опять-таки бред. Не бывает объектов раннего связывание и объектов позднего связывания.
Я не знаю, что это такое.Хакер писал(а):Почему бы не сделать тогда просто экспортируемую функцию?
Хакер писал(а):Добавление библиотеки возможно только когда ты в IDE. Когда есть готовая программа, нет никаких референсов. Ты хочешь, чтобы библиотеку нельзя было добавить в референсы (а сделать это можно только в IDE),
В чем противоречие? CreateObject отлично создает объекты из библиотек, не подключенных к проекту.но в то же время, хочешь чтобы с библиотекой работали только из под IDE. Противоречие какое-то.
Тогда такой вопрос: если библиотека подключена к проекту, но ни разу не используется, её объявление попадет в экзешник? Или будет так же, как с тлб?Хакер писал(а):Если условная компиляция, то нафиг CreateObject? Чем New не устраивает?
arthur2 писал(а):Тогда такой вопрос: если библиотека подключена к проекту, но ни разу не используется, её объявление попадет в экзешник? Или будет так же, как с тлб?
Ну ещё становится возможным объявлять объекты тех классов, которые есть в этой библиотекиiGrok писал(а):Если я ничего не путаю, то тот факт, что библиотека подключена к проекту влияет только на то, сможешь ты видеть её в objectbrowser'е и IntelliSense, или нет.
arthur2 писал(а):Ну ещё становится возможным объявлять объекты тех классов, которые есть в этой библиотекиiGrok писал(а):Если я ничего не путаю, то тот факт, что библиотека подключена к проекту влияет только на то, сможешь ты видеть её в objectbrowser'е и IntelliSense, или нет.Абстрактно мне представляется, что это просто потому, что к проекту оказывается подключена тлб, которая есть внутри библиотеки. Правильно?
Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 6