Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, Serginio1, Вы писали:
S>> Еще раз моя обертка для любого нетовского класса, который 1С ник может использовать только зная имя класса если сборка загружена либо AssemblyQualifiedName
S>>если сборка находится в GAC.
_>Ну так а для использования из 1C C++ кода, сделанного с поддержкой COM'a даже и никакие обёртки не нужны.
А вот мне не нужна поддержка ком любого нетовского класса. Это уже издевательство какое то.
S>>>> Это еще раз подтверждение того, что ты невнимательно читаешь ссылки
_>>>Эээ что? )
S>> То, что привел пример универсальной обертки. Где не нужно делать каких либо действий, кроме подписки на события.
S>>Это плюсы Net, где есть Reflection, заглушка к COM, GC. Чего нет в C++. А решать все через предварительное создание враперов не выход, так как я не знаю, чего захочет 1С ник (какие классы, сборки будет использовать), так как врапер универсальный и в real time. По сути это бесплатное расширение 1С. Но самый смех в том, что это мало кому нужно.
_>Вообще то мы сравнивали сложность написания C# и C++ кода, который потом будут вызывать из 1C. Так вот в этом разницы не видно. Если же ты хочешь поговорить о возможности запуска из 1C некого чужого, скомпилированного в бинарник кода, то это уже совсем другой вопрос для другой дискуссии.
Да написания C# кода вообще не существует. Используются любые нетовские классы.
Так запускается то скомпилированный код сборки. Ну читайте внимательно о чем речь. Вы же С++ ники белая кость.
public object CreateObject(object type)
{
var res = ТипДляСоздатьОбъект(type);
return AutoWrap.ОбернутьОбъект(System.Activator.CreateInstance(res));
}
public object СоздатьОбъект(object Тип, params object[] argOrig)
{
// MessageBox.Show(Тип.ToString() + " параметров=" + args.Length.ToString());
var res = ТипДляСоздатьОбъект(Тип);
object[] args = AutoWrap.ПолучитьМассивРеальныхОбъектов(argOrig);
return AutoWrap.ОбернутьОбъект(System.Activator.CreateInstance(res, args));
}
https://msdn.microsoft.com/ru-ru/library/system.activator.createinstance(v=vs.110).aspx
Activator.CreateInstance — метод
Создает экземпляр указанного типа, используя конструктор, соответствующий заданным параметрам.
Кстати в Net 4.5 появилась поддержка для Com params object[]