![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| SergSW |
|
||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
Суть такова есть класс TIMyInter реализующий мой интерфейс IMyInter. Реализация класса и код создающий экземпляр класса вынесен в DLL.
п.с. IItem так же мой интерфейс реализуемый в этой библиотеке. На Delphi пример работает на ура вызов проходит без ошибок, но тоже самое на CBilder-e валится в AV, причём проблема именно в том что я возвращаю IItem, т.к. прочие методы рабоают и в билдере интерфейс на Сях
под отладчиком увидел интересный момент (Пример Delphi)
вызов того же метода (Пример CBuilder)
Как видно в случае с CBuilder-ом иной список параметров помещаемых в стек. При этом везде должна идти передача параметров по stdcall как добиться единообразия? Это сообщение отредактировал(а) SergSW - 26.8.2009, 18:18 |
||||||||
|
|||||||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
а че разные вызовы? зачем виртуал в си варианте? тем более сделаный абстрактным? -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
В чём на Ваш взгляд они разные? Насколько я помню все методы интерфейсов являются виртуальными. Т.к. все точки входов методов должны размещаться в VTM это интерфейс - у него нет реализации на C |
|||
|
||||
| CodeMonkey |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Я ничего не понимать в сях, но
Неявно трактуется как:
Может это поможет. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
||||
|
|||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
CodeMonkey, не знал )), спасибо за совет - попробую
эх теперь бы ещё перевезти
на C Это сообщение отредактировал(а) SergSW - 27.8.2009, 08:20 |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
А откуда взялся вариант интерфейса для C++?
-------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
простите не понял вопроса |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Был ли он сгенерирован средой или же написан самостоятельно руками. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
||||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Вот так будет правильно
Добавлено через 1 минуту и 49 секунд Просто добавляешь модуль делфи в проект билдера, и билдер сам генерит совместимые хидеры. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| SergSW |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
но будет ли он корректно работать на VS? Сомневаюсь
Это сообщение отредактировал(а) SergSW - 27.8.2009, 10:08 |
|||
|
||||
| Romikgy |
|
||||||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
иль так
иль так
имхо Это сообщение отредактировал(а) Romikgy - 27.8.2009, 10:20 -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
||||||
|
|||||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Нет конечно, нужно просто разбираться что VS понимает под словом interface. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| SergSW |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 45 Регистрация: 14.9.2006 Репутация: нет Всего: нет |
Romikgy, увы но не так. Видимо несовсем внимательно читали мой код. То что выпредлогаете первым в стек засунет Result, затем Y, X, Type и this(Self) а в делфи получается порядок другой Y, X, Type, this(Self), Result несмотря на то что везде стоит вызов stdcall.
да вроде бы это везде абстрактные классы) Проблема возникает в передачи параметров при возврате интерфейсного объекта. Для себя решил что проще явно переделать методы
по крайней мере должно везде заработать, жаль что много переписывать придётся |
||||
|
|||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
А кто гарантирует что структура VMT у них совпадает? Добавлено через 32 секунды По идее делфи дает COM совместимые интерфейсы. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |