Переключение на Главную Страницу Страницы: 1 ... 4 5 [6]  ОтправитьПечать
Очень популярная тема (более 25 ответов) v7CLR: ВК для работы с .NET-типами без CCW (число прочтений - 58476 )
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7CLR: ВК для работы с .NET-типами без CCW
Ответ #75 - 16. Июня 2009 :: 12:38
Печать  
steban писал(а) 16. Июня 2009 :: 11:57:
я чуток приврал. 1с++ при проверке была не загружена.

Ну, судя по
Код
Выбрать все
	МетаДата = СоздатьОбъект("MetaDataWork");
	МетаДата.ПрисоединитьМД(КаталогИБ()+"1cv7.md"); 


из ПриОткрытии(), у davay2000 1С++ была загружена..  Озадачен
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
davay2000
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 12. Июня 2009
Re: v7CLR: ВК для работы с .NET-типами без CCW
Ответ #76 - 16. Июня 2009 :: 12:48
Печать  
Добавил в процедуру ПриОткрытии() загрузку 1cpp.dll
ЗАРАБОТАЛО!!!  Очень довольный
Буду тэстить - на заколдованном ноуте.

Правда почему-то первые несколько запусков внешней обработки геренили критическую ошибку - и 1ска вылетала при закрытии формы.
У меня при закрытии формы вызываются функции:
ФСНаблюдатель.EnableRaisingEvents = 0;
ФСНаблюдатель.Finalize();
ФСНаблюдатель.Dispose();

а также вызывается функция:
Процедура ФС_disposed(s,e)
     Сообщить(e.ChangeType+" *"+e.Name);
КонецПроцедуры

а при открытии запускася УскорительГК
     глУск=СоздатьОбъект("УскорительГК");
     глУск.Ускорить();

Я грешу на ускоритель - возможно это он и давал и дает эту проблему на ноуте.

Какое это счастье - когда есть ЧТО тэстить!  Улыбка
  
Наверх
 
IP записан
 
davay2000
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 12. Июня 2009
Re: v7CLR: ВК для работы с .NET-типами без CCW
Ответ #77 - 16. Июня 2009 :: 13:06
Печать  
Еще вопрос.
Как назначить наблюдение за несколькими каталогами и по нескольким маскам файлов?

А точнее вопрос - как правильно все это делать чтобы потом при снятии наблюдения - не оставлять за собой мусора?
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7CLR: ВК для работы с .NET-типами без CCW
Ответ #78 - 16. Июня 2009 :: 13:38
Печать  
davay2000 писал(а) 16. Июня 2009 :: 13:06:
как правильно все это делать чтобы потом при снятии наблюдения - не оставлять за собой мусора?

Вызов Finalize - явно лишнее. Возможно, именно из-за этого и вылетает при закрытии формы.
Присвоение EnableRaisingEvents нулю выполняется в Dispose.
Чтобы не оставлять мусора, вполне достаточно только вызова Dispose.
FileSystemWatcher на MSDN
  

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
davay2000
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 11
Зарегистрирован: 12. Июня 2009
Re: v7CLR: ВК для работы с .NET-типами без CCW
Ответ #79 - 16. Июня 2009 :: 14:02
Печать  
Вопрос по поводу разных путей и масок:

так все таки - вот ТАК правильно я установил?

//наблюдение за TXT
Наблюдатель=СоздатьОбъект("!System.IO.FileSystemWatcher, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
                 Наблюдатель.Path=ПутьКПапкеОбмена+ИмяПапкиДляВходящих;
Наблюдатель.ПривязатьСобытияККонтексту(Контекст,"ФС_");
);
////Наблюдатель.NotifyFilter =NotifyFilters.LastWrite;
Наблюдатель.IncludeSubdirectories = 0;
Наблюдатель.Filter = "*.txt";
Наблюдатель.EnableRaisingEvents =1;

//наблюдение за DBF
Наблюдатель2=СоздатьОбъект("!System.IO.FileSystemWatcher, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");

Наблюдатель2.Path=ПутьКПапкеОбмена2+ИмяПапкиДляВходящих2;
Наблюдатель2.ПривязатьСобытияККонтексту(Контекст,"ФС_");
);
////Наблюдатель2.NotifyFilter =NotifyFilters.LastWrite;
Наблюдатель2.IncludeSubdirectories = 0;
Наблюдатель2.Filter = "*.DBF";
Наблюдатель2.EnableRaisingEvents =1;

или все-таки можно одним объектом Наблюдатель обойтись? Улыбка

steban что-то писал по поводу того что не нужно несколько раз создавать объект... ?
  
Наверх
 
IP записан
 
steban
1c++ developer
Отсутствует


#define sizeof(x) rand()

Сообщений: 787
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7CLR: ВК для работы с .NET-типами без CCW
Ответ #80 - 16. Июня 2009 :: 15:37
Печать  
davay2000 писал(а) 16. Июня 2009 :: 14:02:
Вопрос по поводу разных путей и масок:

так все таки - вот ТАК правильно я установил?

Ответы на такие вопросы лучше всего искать в MSDN.

FileSystemWatcher.Path - свойство (System.IO)
FileSystemWatcher.Filter - свойство (System.IO)

Filter принимает подстановочные символы для соответствующих файлов, как это показано в следующих примерах.
Строка фильтра Отслеживание следующих файлов
*.* Все файлы (по умолчанию). Пустая строка ("") также отслеживает все файлы.
*.txt Все файлы с расширением TXT.
*recipe.doc Все файлы, оканчивающиеся на recipe, с расширением DOC.
win*.xml Все файлы, начинающиеся на win, с расширением XML.
Sales*200?.xls Соответствует следующим файлам:

Sales July 2001.xlsSales Aug 2002.xlsSales March 2004.xls

но не соответствует следующему:

Sales Nov 1999.xls
MyReport.Doc Отслеживает только MyReport.Doc

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

int getRandomNumber()&&{&&  return 4; //chosen by fair dice roll&&         //guaranteed to be random&&}
Наверх
 
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: v7CLR: ВК для работы с .NET-типами без CCW
Ответ #81 - 06. Июля 2009 :: 12:22
Печать  
Пытаюсь сохранить результат выполнения php-скрипта. Если делаю vbs-скриптом, все получается:
Set web = CreateObject("System.Net.WebClient")
web.DownloadFile "http://address/getprice.php", "D:\mysite.txt"

аналогичным образом пытаюсь сделать через v7clr:

Код
Выбрать все
Web=СоздатьОбъект("!System.Net.WebClient, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
Web.DownloadFile("http://address/getprice.php","D:\mysite.txt"); 



шибко ругается:

Web.DownloadFile("http://address/getprice.php","D:\mysite.txt");
{D:\DATABASE\PSA\EXTFORMS\ПОЛУЧИТЬУСЛУГИТЕРМИНАЛА.ERT(180)}: System.Net.WebException: An exception occurred during a WebClient request. ---> System.Configuration.ConfigurationErrorsException: Error creating the Web Proxy specified in the 'system.net/defaultProxy' configuration section. ---> System.PlatformNotSupportedException: This operation is only supported on Windows 2000 SP3 or later operating systems.
  at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid)
  at System.Diagnostics.SharedUtils.EnterMutexWithoutGlobal(String mutexName, Mutex& mutex)
  at System.Diagnostics.SharedPerformanceCounter.GetCounter(String counterName, String instanceName, Boolean enableReuse, PerformanceCounterInstanceLifetime lifetime)
  at System.Diagnostics.SharedPerformanceCounter..ctor(String catName, String counterName, String instanceName, PerformanceCounterInstanceLifetime lifetime)
  at System.Diagnostics.PerformanceCounter.Initialize()
  at System.Diagnostics.PerformanceCounter.set_RawValue(Int64 value)
  at System.Net.NetworkingPerfCounters.Initialize()
  at System.Net.Configuration.SettingsSectionInternal..ctor(SettingsSection section)
  at System.Net.Configuration.SettingsSectionInternal.get_Section()
  at System.Net.Sockets.Socket.InitializeSockets()
  at System.Net.NetworkAddressChangePolled..ctor()
  at System.Net.AutoWebProxyScriptEngine.AutoDetector.Initialize()
  at System.Net.AutoWebProxyScriptEngine.AutoDetector.get_CurrentAutoDetector()
  at System.Net.AutoWebProxyScriptEngine..ctor(WebProxy proxy, Boolean useRegistry)
  at System.Net.WebProxy.UnsafeUpdateFromRegistry()
  at System.Net.WebProxy..ctor(Boolean enableAutoproxy)
  at System.Net.Configuration.DefaultProxySectionInternal..ctor(DefaultProxySection section)
  at System.Net.Configuration.DefaultProxySectionInternal.GetSection()
  --- End of inner exception stack trace ---
  at System.Net.Configuration.DefaultProxySectionInternal.GetSection()
  at System.Net.WebRequest.get_InternalDefaultWebProxy()
  at System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint)
  at System.Net.HttpRequestCreator.Create(Uri Uri)
  at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase)
  at System.Net.WebRequest.Create(Uri requestUri)
  at System.Net.WebClient.GetWebRequest(Uri address)
  at System.Net.WebClient.DownloadFile(Uri address, String fileName)
  --- End of inner exception stack trace ---
  at System.Net.WebClient.DownloadFile(Uri address, String fileName)
  at System.Net.WebClient.DownloadFile(String address, String fileName)
  at (Object& , Object )
  at CCLRWrapper.CallAsFunc(CCLRWrapper* , Int32 , CValue* , CValue** )

система при этом Windows 2003SP2.  Что посоветуете?
  
Наверх
ICQ  
IP записан
 
Vetalion
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 8
Зарегистрирован: 23. Сентября 2008
Re: v7CLR: ВК для работы с .NET-типами без CCW
Ответ #82 - 08. Июля 2009 :: 09:49
Печать  
За разработку огромное спасибо!
Почему-то далеко не все контролы добавляются на форму. Например TextBox не хочет.
Интересно, это недоработка или у кого-нибудь получилось?
  
Наверх
 
IP записан
 
EugenVitla
Junior Member
**
Отсутствует


школьнег

Сообщений: 82
Местоположение: Москва
Зарегистрирован: 21. Марта 2008
Пол: Мужской
Re: v7CLR: ВК для работы с .NET-типами без CCW
Ответ #83 - 27. Мая 2010 :: 17:29
Печать  
а вот еще чего нашлось.
http://www.1centerprise.com/dotnet/
  
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: v7CLR: ВК для работы с .NET-типами без CCW
Ответ #84 - 24. Марта 2011 :: 14:12
Печать  
А вот если метод определён как
Код
Выбрать все
Public Function SomeName(key As Object, ByRef vid As Integer) ... 


При его вызове получается ошибка Цитата:
v = obj.SomeName(1, 1);
{Обработка.новый1.Форма.Модуль(6)}: System.NullReferenceException: В экземпляре объекта не задана ссылка на объект.
  в (Object& , Object )
  в CCLRWrapper.CallAsFunc(CCLRWrapper* , Int32 , CValue* , CValue** )

Это уже навсегда?  Озадачен


Upd:

Да, если сделать так
Код
Выбрать все
vid = ф.CreateInstance("System.Int32");
v = obj.SomeName(1, vid); 


то ошибка не возникает, но значение не возвращается (vid.ToString() всегда = "0").
« Последняя редакция: 30. Марта 2011 :: 10:22 - berezdetsky »  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Vlad80
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 2
Зарегистрирован: 20. Марта 2018
v7CLR: ВК для работы с .NET-типами без CCW
Ответ #85 - 20. Марта 2018 :: 19:22
Печать  
Коллеги, кто сталкивался?
поделитесь опытом.
Заранее благодарен.

Код
Выбрать все
	Loader 		= ЗагрузитьВнешнююКомпоненту("d:\Base1C\v7CLR.dll");
	Factory	= СоздатьОбъект("CLRFactory");
	S 		= Factory.CreateInstance("Microsoft.AnalysisServices.Server, Version=11.0.0.0, Culture=ru, PublicKeyToken=89845dcd8080cc91");

 





не работает.
Выдает ошибку:

S            = Factory.CreateInstance("Microsoft.AnalysisServices.Server, Version=11.0.0.0, Culture=ru, PublicKeyToken=89845dcd8080cc91");
{D:\BASE1C\OLAP\ConnectTest.ERT(13)}: System.IO.FileLoadException: Данное имя сборки или база кода недействительны. (Исключение из HRESULT: 0x80131047)
   в System.RuntimeTypeHandle._GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName)
   в System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
   в System.RuntimeType.PrivateGetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
   в System.Type.GetType(String typeName)
   в CCLRWrapper.{ctor}(CCLRWrapper* , Int32 nParamsCount, CValue** ppValue)
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 4 5 [6] 
ОтправитьПечать