Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Аналог GetModuleText в 1с++ (число прочтений - 2570 )
stanru1
YaBB Newbies
*
Отсутствует


1c++ forewer

Сообщений: 5
Местоположение: Питер!
Зарегистрирован: 04. Сентября 2007
Пол: Мужской
Аналог GetModuleText в 1с++
04. Сентября 2007 :: 17:07
Печать  
Доброго времени суток!
Подскажите, пожалуйста, есть ли аналог этой ф-ции из rainbow.dll в 1с++? Я нашел похожий по названию метод "ПолучитьТекстТекМодуля", но он не документирован Печаль

Я являюсь счастливым обладателем конфигурации, практически полностью написанной на базе Радуги. Из-за конфликтов с 1с++, хочу пересесть на последний. Однако некоторое кол-во обработок активно используют "GetModuleText".

Заранее спасибо!
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Аналог GetModuleText в 1с++
Ответ #1 - 05. Сентября 2007 :: 04:28
Печать  
Приведи спецификацию данной функции в Rainbow - все параметры функции, что они обозначают, что функция возвращает и т.д.
Тогда смогу сказать подробнее Улыбка
ИМХО почти для всего из Rainbow есть аналоги в 1С++ Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
stanru1
YaBB Newbies
*
Отсутствует


1c++ forewer

Сообщений: 5
Местоположение: Питер!
Зарегистрирован: 04. Сентября 2007
Пол: Мужской
Re: Аналог GetModuleText в 1с++
Ответ #2 - 05. Сентября 2007 :: 08:02
Печать  
функция GetModuleText() без параметров, возвращает текст текущего модуля.
Вот пример кода:

Код
Выбрать все
A = CreateObject("ModuleContext");
A.AssignModule(); // аналог ПрисоединитьТекущийМодуль() в 1с++
SRC = A.GetModuleSource();
 



Объект ModuleContext реализует часть функциональности объекта "ВыполняемыйМодуль" в 1с++.

К сожалению, я не являюсь программистом на С. Но тем не менее посмотрел исходники 1с+ + версии 2.0.3.3. Моя догадка следующая: в файле ExecuteModule.cpp, в классе CExecuteModule имеется метод
Код
Выбрать все
char const *  CExecuteModule::GetCode(void)const
{
	return 0;
}
 


, однако как видно он всегда возвращает 0. Может быть, поэтому ПолучитьТекстТекМодуля возвращает пустоту? Улыбка


UPD
Есть в ExecuteModule еще один "странный" метод (точнее, его часть) -
methGetTextModules
  
Наверх
ICQ  
IP записан
 
stanru1
YaBB Newbies
*
Отсутствует


1c++ forewer

Сообщений: 5
Местоположение: Питер!
Зарегистрирован: 04. Сентября 2007
Пол: Мужской
Re: Аналог GetModuleText в 1с++
Ответ #3 - 05. Сентября 2007 :: 13:03
Печать  
Вообщем, пришлось брать в руки кувалдо Улыбка
Метод methGetTextModules выдает экзепшн, поэтому ничего и не возвращает.
Добавил свой метод,
Код
Выбрать все
{{"GetText", "ТекстТекущегоМодуля"},1,0},
......
case funcGetText:
{
CBLModule *pCurModule = NULL;
pCurModule = CBLModule::GetExecutedModule();
rValue = pCurModule->pIntInfo->mSource;
break;
} 


и все заработало
Код
Выбрать все
т = СоздатьОбъект("ВыполняемыйМодуль");
т.ПрисоединитьТекущийМодуль();
Сообщить(т.ТекстТекущегоМодуля()); 

как надо.
А могут ли разработчики 1с++ включить что-то похожее в следующий релиз?
  
Наверх
ICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Аналог GetModuleText в 1с++
Ответ #4 - 05. Сентября 2007 :: 13:52
Печать  
А вот вопрос Алексею Федорову (aka АЛьФ).

Понятно, что при получении класса в DLL код модуля будет получаться легко. А можно ли будет получить текст модуля для защищенных (прекомпилированных) классов, которые ты хотел реализовать?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Аналог GetModuleText в 1с++
Ответ #5 - 20. Сентября 2007 :: 12:40
Печать  
stanru1 писал(а) 05. Сентября 2007 :: 13:03:
А могут ли разработчики 1с++ включить что-то похожее в следующий релиз?

В ФормЕкс у объекта РасширениеФормы есть свойство "ТекстМодуля"
Т.е. или используй 1С++ 2033 или раздельный 1С++ 2.5 и ФормЕкс 2.0.5
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
stanru1
YaBB Newbies
*
Отсутствует


1c++ forewer

Сообщений: 5
Местоположение: Питер!
Зарегистрирован: 04. Сентября 2007
Пол: Мужской
Re: Аналог GetModuleText в 1с++
Ответ #6 - 20. Сентября 2007 :: 14:18
Печать  
блин, где были мои глаза когда я читал доку!!! Улыбка)
Спасибо огромное! Модификация компоненты это хорошо, а совместимость с новыми версиями - гораздо лучше! Улыбка
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать