Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема FAQ для разработчика е? (число прочтений - 1753 )
vugluscr
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 21. Декабря 2010
FAQ для разработчика е?
22. Декабря 2010 :: 09:28
Печать  
Привет!
Тут очень много всего про использование.
1cpp - огромный функционал, который мне бы не хотелось подключать, если я не планирую использовать новые классы.
У меня есть своя ВК, в которой я бы хотел реализовать несколько событий. Вообще в ней пока отрабатываются только асинхронные события извне 1С и из 1С как это сделано в ВК ромикса. Ещё там есть небольшая многопоточность.
Теперь мне нужны события ПриНачалеБлокировкиОбъекта и ПослеОкончанияБлокировкиОбъекта
написал на мисту
...
Здесь же хочу спросить.
Как правильно реализовать перехват функции CStoreObj::Locking.
Как настроить вызов процедуры в глобальном модуле после перехвата.
И все же эти вопросы не главное. Правильно сформулированный вопрос - 50% ответа. А он у меня формулируется примерно так "Что вы такое знаете, что у вас это все получилось?" Некорректно, пока, увы.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: FAQ для разработчика е?
Ответ #1 - 22. Декабря 2010 :: 09:45
Печать  
так вроде перехват для невиртуальных всегда делается за счет jmp...
в 1С++ и Formex именно так делается
  
Наверх
 
IP записан
 
vugluscr
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 21. Декабря 2010
Re: FAQ для разработчика е?
Ответ #2 - 22. Декабря 2010 :: 09:56
Печать  
Ассемблерные вставки в код я делать умею. Но тут не колхозить нужно,  а то поправлю я dbeng32 а моя компонента может ещё и загружена не будет и получится jmp на адрес которого ещё нет.
Эту проблему тоже можно заколхозить, вопрос больше в том, как вызвать метод в глобальнике, после того как моя функция в ВК получит исполнение и стек.
Функция как написать, чтобы там не все ассемблером делать, а как-то использовать 1С хедерсы, абстракции.
Наверное эта функция должна быть от объекта, который наследует CStoreObj, чтобы ассемблером только стек подкручивать.
  
Наверх
 
IP записан
 
vugluscr
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 21. Декабря 2010
Re: FAQ для разработчика е?
Ответ #3 - 22. Декабря 2010 :: 10:03
Печать  
Уже можно ссылку запостить
http://www.forum.mista.ru/topic.php?id=524131
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: FAQ для разработчика е?
Ответ #4 - 22. Декабря 2010 :: 10:04
Печать  
А тебя никто не просит исправлять сам файл dbeng32, посмотри, исходники 1C++, там используется замечательная функция VirtualProtect.

Как вызвать процедуру/функцию из глобальника смотри в сторону CBLModule::CallAsProc/CallAaFunc.

Опять же есть сорцы.

  
Наверх
 
IP записан
 
vugluscr
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 9
Зарегистрирован: 21. Декабря 2010
Re: FAQ для разработчика е?
Ответ #5 - 22. Декабря 2010 :: 10:05
Печать  
Спасибо буду смотреть...
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: FAQ для разработчика е?
Ответ #6 - 22. Декабря 2010 :: 10:11
Печать  
vugluscr писал(а) 22. Декабря 2010 :: 10:05:
Спасибо буду смотреть...


Вот еще-на счет адреса экспортируемой функции - GetProcAddress
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать