Полноценный вызов функций по указателю и препроцессор :)

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Полноценный вызов функций по указателю и препроцессор :)

Сообщение GSerg » 14.08.2004 (Сб) 15:50

Ну не то чтобы прямо препроцессор, но идею можно и развить :)
В общем, все, конечно, читали вот это вот:wink: Так вот, тут как раз обещанный add-in, который занимается генерацией кода пустышек. Идём в любой модуль (только в модуль, в других местах вас будут игнорить) и пишем с новой строки

#func FunctionName(paramlist)

Списка параметров может не быть, но скобки быть должны (нефиг халявить! :twisted: ). Список параметров – самый обычный, точно так, как всегда. Написав эту славную строчку, жмём Enter и имеем результат :)

Бета-тестинг в моём исполнении был, но дополнительный не помешает. Багрепорты приветствуются. Также приветствуются мысли о том, не следует ли развить это направление в полноценный препроцессор :)
У вас нет доступа для просмотра вложений в этом сообщении.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.08.2004 (Сб) 16:11

А чё без исходников?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.08.2004 (Сб) 16:21

Да как-то неловко :)
Во-первых, это шаблонная dll с кусками реально ненужного кода, частично зарэмленного :) Во-вторых, там не нормальный парсер объявления функции, а жуткое убожество :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.08.2004 (Сб) 16:23

Ну ладно, чего уж там, все свои :)
У вас нет доступа для просмотра вложений в этом сообщении.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.08.2004 (Сб) 21:57

(*Мрачно*) У, партизаны...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 15.08.2004 (Вс) 0:37

Ха, а ты ждал feedback'a? Ты думаешь, что кроме нас с тобой (ну и еще пары человек) кто-нибудь что-нибудь понял? :) Хотя бы зачем это надо.

А идейка интересная, только вот я ума не приложу, где бы это прикрутить на практике :oops:
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.08.2004 (Вс) 8:43

Вызов функций из динамически загружаемых библиотек так, словно они встроены в VB :)
Вызов динамически генерируемого кода так, как будто он обычная функция VB :)
Вызов чего угодно так, как будто оно всегда было встроено в VB :)
Не знаю, как там получится с интерфейсами, но если получится и с ними... :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.08.2004 (Вс) 9:51

С интерфейсами уже проблем никаких нету, т.е. им такая штука и не нужна. А вообще, говорят, там ещё проще, - перезаписываешь один указатель в VTBL, и дело в шляпе.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.08.2004 (Вс) 10:08

А если целевой интерфейс не поддерживает IDispatch, то как себя поведёт VB, если ему подсунуть этот указатель?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Egor_moscow
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 31.07.2004 (Сб) 5:15

Сообщение Egor_moscow » 30.09.2004 (Чт) 5:02

Народ скажите коль не секрет че это такое и на оно нужно? (ну любознательный я!)

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 30.09.2004 (Чт) 16:04

Egor_moscow писал(а):Народ скажите коль не секрет че это такое и на оно нужно? (ну любознательный я!)
http://vbstreets.ru/Articles/66044.aspx
Изображение


Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18

    TopList  
cron