Сообщение Re[100]: Java vs C# vs C++ от 11.10.2015 22:01
Изменено 11.10.2015 22:20 Serginio1
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Здравствуйте, Serginio1, Вы писали:
EP>>>>>>>Причём тут "во время исполнения"? Ты свой класс, для которого нужен IDispatch, меняешь в runtime? Ты этого не говорил в условии
S>>>>>> Я беру любую нетовскую сборку и использую её.
EP>>>>>От native варианта ты что хочешь? Взять любую DLL и сделать к ней wrapper?
S>>>> Мой врапер работает с любой DLL без предварительного описания. В рефлекшине все есть.
EP>>>Нет, не с любой
S>>Докажи.
EP>Возьми любую native dll
Я говорил про любую нетовскую. Ты уж неотсетничай
S>>>>>>Есть свои сборки. То есть любую без предварительного описания.
EP>>>>>Ещё раз, SWIG не требует предварительного описания.
S>>>> А что делает SWIG? Ты должен получить врапер причем статически. Или он компилирует на лету по исходникам?
EP>>>Он делает весь glue code по исходникам.
S>> Ну вот, а говоришь, что не требует предварительного описания.
EP>Это исходный класс что-ли предварительное описание?
Ну вообще то да. Или у вас все с открытыми кодами? Swig делает в итоге делает предварительное описание.
S>>>>>>В Net value тип боксится
EP>>>>>В C++ объект любого типа можно создать где угодно (не считая несколько экстремальных случаев к теме не относящихся) — в любой кучке байт достаточного размера
S>>>>Кстати в примерах только value типы. Нет там примеров с объектами, типами итд.
S>>>>Как ваш описатель врапера разберется с зоопарком менеджеров памяти?
EP>>>Каким зоопарком? Ты о чём?
S>> То есть у вас как в Delphi один менеждер памяти?
EP>Не один, и здесь в этом нет проблемы. COM объекты создаются и удаляются на одной стороне.
Это когда это такое было? Вся прелесть COM в том, что используется единый менеджер памяти.
Строки, массивы могут создаваться на стороне клиента и передаваться в объект. Да и объекты могут создаваться в разных DLL.
Еще раз все объекты должны поддерживать подсчет ссылок.
S>>Все классы поддерживают подсчет ссылок?
EP>Это всё прекрасно реализуется неинтрузивно.
EP>Нет подсчёта ссылок:
EP>
EP>
Ну вот у тебя есть две структуры. Кто и когда будет удалять объекты находящихся в полях структуры.
По сути тебе нужно, что бы все классы поддерживали подсче ссылок.
EP>Здравствуйте, Serginio1, Вы писали:
EP>>>>>>>Причём тут "во время исполнения"? Ты свой класс, для которого нужен IDispatch, меняешь в runtime? Ты этого не говорил в условии
S>>>>>> Я беру любую нетовскую сборку и использую её.
EP>>>>>От native варианта ты что хочешь? Взять любую DLL и сделать к ней wrapper?
S>>>> Мой врапер работает с любой DLL без предварительного описания. В рефлекшине все есть.
EP>>>Нет, не с любой
S>>Докажи.
EP>Возьми любую native dll
Я говорил про любую нетовскую. Ты уж неотсетничай
S>>>>>>Есть свои сборки. То есть любую без предварительного описания.
EP>>>>>Ещё раз, SWIG не требует предварительного описания.
S>>>> А что делает SWIG? Ты должен получить врапер причем статически. Или он компилирует на лету по исходникам?
EP>>>Он делает весь glue code по исходникам.
S>> Ну вот, а говоришь, что не требует предварительного описания.
EP>Это исходный класс что-ли предварительное описание?
Ну вообще то да. Или у вас все с открытыми кодами? Swig делает в итоге делает предварительное описание.
S>>>>>>В Net value тип боксится
EP>>>>>В C++ объект любого типа можно создать где угодно (не считая несколько экстремальных случаев к теме не относящихся) — в любой кучке байт достаточного размера
S>>>>Кстати в примерах только value типы. Нет там примеров с объектами, типами итд.
S>>>>Как ваш описатель врапера разберется с зоопарком менеджеров памяти?
EP>>>Каким зоопарком? Ты о чём?
S>> То есть у вас как в Delphi один менеждер памяти?
EP>Не один, и здесь в этом нет проблемы. COM объекты создаются и удаляются на одной стороне.
Это когда это такое было? Вся прелесть COM в том, что используется единый менеджер памяти.
Строки, массивы могут создаваться на стороне клиента и передаваться в объект. Да и объекты могут создаваться в разных DLL.
Еще раз все объекты должны поддерживать подсчет ссылок.
S>>Все классы поддерживают подсчет ссылок?
EP>Это всё прекрасно реализуется неинтрузивно.
EP>Нет подсчёта ссылок:
EP>
EP>struct Widget
EP>{
EP> Data x;
EP>};
EP>
Легким движением руки подсчёт ссылок появляется:EP>
EP>shared_ptr<Widget> ref_counted_widget;
EP>
Ну вот у тебя есть две структуры. Кто и когда будет удалять объекты находящихся в полях структуры.
По сути тебе нужно, что бы все классы поддерживали подсче ссылок.
Re[100]: Java vs C# vs C++
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Здравствуйте, Serginio1, Вы писали:
EP>>>>>>>Причём тут "во время исполнения"? Ты свой класс, для которого нужен IDispatch, меняешь в runtime? Ты этого не говорил в условии
S>>>>>> Я беру любую нетовскую сборку и использую её.
EP>>>>>От native варианта ты что хочешь? Взять любую DLL и сделать к ней wrapper?
S>>>> Мой врапер работает с любой DLL без предварительного описания. В рефлекшине все есть.
EP>>>Нет, не с любой
S>>Докажи.
EP>Возьми любую native dll
Я говорил про любую нетовскую. Кстати может и не все нетовские если он обфусцирован. Правда ни разу с ними не работал
S>>>>>>Есть свои сборки. То есть любую без предварительного описания.
EP>>>>>Ещё раз, SWIG не требует предварительного описания.
S>>>> А что делает SWIG? Ты должен получить врапер причем статически. Или он компилирует на лету по исходникам?
EP>>>Он делает весь glue code по исходникам.
S>> Ну вот, а говоришь, что не требует предварительного описания.
EP>Это исходный класс что-ли предварительное описание?
Ну вообще то да. Или у вас все с открытыми кодами? Swig делает в итоге делает предварительное описание.
S>>>>>>В Net value тип боксится
EP>>>>>В C++ объект любого типа можно создать где угодно (не считая несколько экстремальных случаев к теме не относящихся) — в любой кучке байт достаточного размера
S>>>>Кстати в примерах только value типы. Нет там примеров с объектами, типами итд.
S>>>>Как ваш описатель врапера разберется с зоопарком менеджеров памяти?
EP>>>Каким зоопарком? Ты о чём?
S>> То есть у вас как в Delphi один менеждер памяти?
EP>Не один, и здесь в этом нет проблемы. COM объекты создаются и удаляются на одной стороне.
Это когда это такое было? Вся прелесть COM в том, что используется единый менеджер памяти.
Строки, массивы могут создаваться на стороне клиента и передаваться в объект. Да и объекты могут создаваться в разных DLL.
Еще раз все объекты должны поддерживать подсчет ссылок.
S>>Все классы поддерживают подсчет ссылок?
EP>Это всё прекрасно реализуется неинтрузивно.
EP>Нет подсчёта ссылок:
EP>
EP>
Ну вот у тебя есть две структуры. Кто и когда будет удалять объекты находящихся в полях структуры.
По сути тебе нужно, что бы все классы поддерживали подсче ссылок.
EP>Здравствуйте, Serginio1, Вы писали:
EP>>>>>>>Причём тут "во время исполнения"? Ты свой класс, для которого нужен IDispatch, меняешь в runtime? Ты этого не говорил в условии
S>>>>>> Я беру любую нетовскую сборку и использую её.
EP>>>>>От native варианта ты что хочешь? Взять любую DLL и сделать к ней wrapper?
S>>>> Мой врапер работает с любой DLL без предварительного описания. В рефлекшине все есть.
EP>>>Нет, не с любой
S>>Докажи.
EP>Возьми любую native dll
Я говорил про любую нетовскую. Кстати может и не все нетовские если он обфусцирован. Правда ни разу с ними не работал
S>>>>>>Есть свои сборки. То есть любую без предварительного описания.
EP>>>>>Ещё раз, SWIG не требует предварительного описания.
S>>>> А что делает SWIG? Ты должен получить врапер причем статически. Или он компилирует на лету по исходникам?
EP>>>Он делает весь glue code по исходникам.
S>> Ну вот, а говоришь, что не требует предварительного описания.
EP>Это исходный класс что-ли предварительное описание?
Ну вообще то да. Или у вас все с открытыми кодами? Swig делает в итоге делает предварительное описание.
S>>>>>>В Net value тип боксится
EP>>>>>В C++ объект любого типа можно создать где угодно (не считая несколько экстремальных случаев к теме не относящихся) — в любой кучке байт достаточного размера
S>>>>Кстати в примерах только value типы. Нет там примеров с объектами, типами итд.
S>>>>Как ваш описатель врапера разберется с зоопарком менеджеров памяти?
EP>>>Каким зоопарком? Ты о чём?
S>> То есть у вас как в Delphi один менеждер памяти?
EP>Не один, и здесь в этом нет проблемы. COM объекты создаются и удаляются на одной стороне.
Это когда это такое было? Вся прелесть COM в том, что используется единый менеджер памяти.
Строки, массивы могут создаваться на стороне клиента и передаваться в объект. Да и объекты могут создаваться в разных DLL.
Еще раз все объекты должны поддерживать подсчет ссылок.
S>>Все классы поддерживают подсчет ссылок?
EP>Это всё прекрасно реализуется неинтрузивно.
EP>Нет подсчёта ссылок:
EP>
EP>struct Widget
EP>{
EP> Data x;
EP>};
EP>
Легким движением руки подсчёт ссылок появляется:EP>
EP>shared_ptr<Widget> ref_counted_widget;
EP>
Ну вот у тебя есть две структуры. Кто и когда будет удалять объекты находящихся в полях структуры.
По сути тебе нужно, что бы все классы поддерживали подсче ссылок.