Re[3]: Dll vs COM
От: degor Россия  
Дата: 18.08.05 11:30
Оценка:
Здравствуйте, Left2, Вы писали:

L>Ещё я бы отметил такой минус как необходимость наличия администраторских прав для регистрации COM Dll.

не админских, а Power User
Re[4]: Dll vs COM
От: aik Австралия  
Дата: 18.08.05 11:54
Оценка:
Здравствуйте, Left2, Вы писали:

aik>>Передача параметров в пределах приложения — никаких особенных правил не требует из-за единого адресного пространства,

L>Не совсем так. Передача, к примеру, строк в/из Dll требует серьёзных извращений (почитай как народ мучается при передаче std::string или std::vector между двумя модулями, скомпилированными с разными CRT).

Дискуссия пошла в сторону Во1ых, с привлечением COM'а проблема не исчезнет. COM вовсе про такие приколы не понимает. Во2ых, от CRT либо лучше сразу избавиться, либо использовать динамический CRT.
Re[5]: Dll vs COM
От: Left2 Украина  
Дата: 18.08.05 12:16
Оценка:
aik>Дискуссия пошла в сторону Во1ых, с привлечением COM'а проблема не исчезнет. COM вовсе про такие приколы не понимает. Во2ых, от CRT либо лучше сразу избавиться, либо использовать динамический CRT.

1. C привлечением COM строки передаются как BSTR, и об этих проблемах забывают
2. от CRT избавиться не так-то просто. Динамический CRT заставляет таскать с собой дополнительные Dll, которые к тому же никак не решают проблемы если какая-то из Dll с которыми ты взаимодействуешь линкует CRT статически

Вообще-то главная моя мысль была в том что в COM передача строк стандартизована, за что ему низкий поклон — не имеем проблем на казалось бы ровном месте.
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[6]: Dll vs COM
От: aik Австралия  
Дата: 18.08.05 12:21
Оценка:
Здравствуйте, Left2, Вы писали:

aik>>Дискуссия пошла в сторону Во1ых, с привлечением COM'а проблема не исчезнет. COM вовсе про такие приколы не понимает. Во2ых, от CRT либо лучше сразу избавиться, либо использовать динамический CRT.

L>1. C привлечением COM строки передаются как BSTR, и об этих проблемах забывают

BSTR тебе никто не запрещает использовать и без COM'а.

L>2. от CRT избавиться не так-то просто. Динамический CRT заставляет таскать с собой дополнительные Dll, которые к тому же никак не решают проблемы если какая-то из Dll с которыми ты взаимодействуешь линкует CRT статически


msvcrt.dll — она много где есть. Чуть ли не c IE4 пошла. Не надо ее таскать.

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


Да, но использование BSTR != использованию COM. Да SysAllocString — не самый лучший аллокатор, вообще говоря.
А вообще — не понимаю о чем спорим...
Re[7]: Dll vs COM
От: Left2 Украина  
Дата: 18.08.05 12:45
Оценка:
aik>BSTR тебе никто не запрещает использовать и без COM'а.
согласен. но пока не было COM, BSTR тоже не было

aik>msvcrt.dll — она много где есть. Чуть ли не c IE4 пошла. Не надо ее таскать.

Проблема не в отсутствии или наличии msvcrt.dll. Проблема в том что если кто-то ещё использует CRT статически (либо пользует самописный CRT) — будут проблемы.

aik>Да, но использование BSTR != использованию COM. Да SysAllocString — не самый лучший аллокатор, вообще говоря.

BSTR — часть COM, причём неотьемлимая

aik>А вообще — не понимаю о чем спорим...

?
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[8]: Dll vs COM
От: aik Австралия  
Дата: 18.08.05 13:10
Оценка:
Здравствуйте, Left2, Вы писали:

aik>>BSTR тебе никто не запрещает использовать и без COM'а.

L>согласен. но пока не было COM, BSTR тоже не было

Да много чего не было. Под COM MS некоторое количество сопутствующих утилит слабал, потому что просто пришлось. BSTR, реестр и так далее.

aik>>msvcrt.dll — она много где есть. Чуть ли не c IE4 пошла. Не надо ее таскать.

L>Проблема не в отсутствии или наличии msvcrt.dll. Проблема в том что если кто-то ещё использует CRT статически (либо пользует самописный CRT) — будут проблемы.

В пределах проекта разный CRT? Бить по рукам.

aik>>Да, но использование BSTR != использованию COM. Да SysAllocString — не самый лучший аллокатор, вообще говоря.

L>BSTR — часть COM, причём неотьемлимая

И шо, требует CoInitialize?

aik>>А вообще — не понимаю о чем спорим...

L> ?

однозначно
Re[8]: Dll vs COM
От: serge_levin Россия  
Дата: 18.08.05 13:20
Оценка:
Здравствуйте, Left2, Вы писали:

aik>>Да, но использование BSTR != использованию COM. Да SysAllocString — не самый лучший аллокатор, вообще говоря.

L>BSTR — часть COM, причём неотьемлимая

Но есть же еше LPSTR, LPWSTR и VirtualAlloc, к примеру. Или GlobalAlloc — кому что больше по душе. Использовать библиотеки, в которых происходит выделение памяти посредством runtime между несколькими модулями, имхо, как-то нездраво.
... << RSDN@Home 1.1.3 stable >>
Re[9]: Dll vs COM
От: AndrewJD США  
Дата: 18.08.05 13:40
Оценка:
Здравствуйте, aik, Вы писали:

aik>>>msvcrt.dll — она много где есть. Чуть ли не c IE4 пошла. Не надо ее таскать.

L>>Проблема не в отсутствии или наличии msvcrt.dll. Проблема в том что если кто-то ещё использует CRT статически (либо пользует самописный CRT) — будут проблемы.

aik>В пределах проекта разный CRT? Бить по рукам.


Никогда не приходилось пользоваться чужими либами без исходников?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Re[10]: Dll vs COM
От: aik Австралия  
Дата: 18.08.05 14:04
Оценка:
Здравствуйте, AndrewJD, Вы писали:

aik>>>>msvcrt.dll — она много где есть. Чуть ли не c IE4 пошла. Не надо ее таскать.

L>>>Проблема не в отсутствии или наличии msvcrt.dll. Проблема в том что если кто-то ещё использует CRT статически (либо пользует самописный CRT) — будут проблемы.
aik>>В пределах проекта разный CRT? Бить по рукам.
AJD>Никогда не приходилось пользоваться чужими либами без исходников?

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