Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Вызов метода интерфейса из ассемблера 
:(
    Опции темы
Gershkovich
Дата 28.2.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 8.2.2006

Репутация: 0
Всего: 2



Всем привет!

Вопрос немного не про Delphi. Вернее наполовину про Delphi.
Но вдруг...

Делаю плагин для AIMP2. На Delphi плагин получаеццо больше 300к.
Если вставлю окно конфигурации, то все 600к.
Хочу переделать плагин на ассемблере (FASM) . Разница в размере DLL-ек - 100 раз (!)

Но проблема в следующем:

AIMP предоставляет доступ к своим функциям через контроллер IAIMP2Controller
(ссылка на него передается в плагин при инициализации плагина)

IAIMP2Controller объявлен как интерфейс:
Код
IAIMP2Controller = interface
  function IsUnicodeVersion: Boolean; stdcall; // Must be True
  function AIMP_CallBack_Set(dwCBType: DWORD; Proc: Pointer; User: DWORD): Boolean; stdcall;
  ...
  ...
  ...
end;


Вопрос - имея ссылку на интерфейс, как вызвать нужный метод из ассемблера ?

Заранее спасибо.
ЗЫ: запостил этот вопрос на ассеблерном форуме:  http://wasm.ru/forum/viewtopic.php?id=36569


Это сообщение отредактировал(а) Gershkovich - 28.2.2010, 14:37
PM MAIL   Вверх
CodeMonkey
Дата 28.2.2010, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Правильный ответ: вместо того, чтобы страдать хернёй, займитесь чем-нибудь полезным.

Не очень правильный ответ: что мешает написать плагин на Delphi без VCL? Получится примерно то же.

Совсем неправильный ответ: вставьте вызов интерфейса, да посмотрите на сгенерированный компилятором код.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Rrader
  Дата 28.2.2010, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



В папке %FASMDIR%\EXAMPLES\USECOM есть пример работы с интерфейсом ITaskBarList. Можно сделать по аналогии.


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Frees
Дата 28.2.2010, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



какой смысл экономить килобайты если размер оперативки исчисляется гигабайтами?


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Gershkovich
Дата 28.2.2010, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 8.2.2006

Репутация: 0
Всего: 2



Цитата(CodeMonkey @  28.2.2010,  17:23 Найти цитируемый пост)
Не очень правильный ответ: что мешает написать плагин на Delphi без VCL? Получится примерно то же.

Действительно! Убрал из секции uses ненужные юниты - размер сократилсо до 16К.


Цитата(CodeMonkey @  28.2.2010,  17:23 Найти цитируемый пост)
Совсем неправильный ответ: вставьте вызов интерфейса, да посмотрите на сгенерированный компилятором код. 

Я предлагаю Вам вставить вызов интерфейса и посмотреть  в отладчике. Я обещаю - Вы <removed by moderator>.


Rrader,  воистину RTFM! Я не предполагал что FASM предоставляет такую возможность потомучто FASM какбэ и под линукс может. Поэтому и  не допускал такой возможности. Все просто на самом деле.


Цитата(Frees @  28.2.2010,  17:36 Найти цитируемый пост)
какой смысл экономить килобайты если размер оперативки исчисляется гигабайтами? 

Смысл в том, чтобы писать грамотно, красиво и рационально - и в этом есть прелесть программирования. Удовлетворение тщеславия, если хотите

СПАСИБО ВСЕМ ОТКЛИКНУВШИМСЯ!
Вы мне действительно помогли


M
Rrader
Gershkovich, полегче с выражениями


Это сообщение отредактировал(а) Rrader - 28.2.2010, 18:25
PM MAIL   Вверх
Gershkovich
Дата 28.2.2010, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 243
Регистрация: 8.2.2006

Репутация: 0
Всего: 2



Rrader,  почему Вы не сделали предупреждение CodeMonkey ??????
Или выражение "страдать хернёй" является приемлемым ?
Будьте, пожалуйста, последовательным, Rrader!
PM MAIL   Вверх
Rrader
  Дата 28.2.2010, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



Gershkovich, "херня" <> taboo slang, а у вас был такой, пусть и немного прикрытый. Я сделал вам замечание, никаких предупреждений. Надеюсь, отнесетесь с пониманием. Тема закрыта.


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
bems
Дата 1.3.2010, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Все дело в том, что хер это буква старого алфавита. Когда говорят "хер" вместо другого слова на ту же букву, то это тоже самое, что сказать "страдать хэ".


--------------------
Обижено школьников: 8
PM MAIL   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0853 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.