ПодключитьВнешнююКомпоненту возвращает ложь #787047


#0 by abuca
Куда копать, подскажите... Уже целый день, дальше 2х строк не сдинулся... &НаСервере Возвращает ложь, хоть из макета, хоть из файла. В описании DLL поддерживает NativeAPI В папке с установленным SDK лежат 2 файла библиотеки: ZGuard.dll ZGuard.lib Это библиотека контроллера системы контроля доступа. Взято отсюда: Комментарий оттуда: "SDK Guard предназначен для облегчения и ускорения интеграции сетевых контроллеров IronLogic с существующими или вновь создаваемыми программными комплексами, например, учета рабочего времени или контроля доступа. Основой SDK является DLL библиотека и программа-драйвер связи позволяющие осуществлять обмен информацией с перечисленными выше контроллерами"
#1 by Cool_Profi
Пролистав страничку - не увидел там ни слова про 1с. С какого перепо^Wугу она должна грузиться как внешняя компонента?
#2 by abuca
т.е., продолжу, dll должна иметь совместимость с 1С? Знаю, что этот контроллер пихнули в одну из жадных конфигураций "Фитнес". Использовали ли они этот SDK не знаю точно, но эта ссылка (со слов производителя оборудования) была передана разработчику Фитнес-клуба, Корп версия которого поддерживает данные контроллеры. Значит совместимо...
#3 by Cool_Profi
"dll должна иметь совместимость с 1С?" Внезапно, да? А слова к делу не подошьёшь. Берёшь производителя/поставщика за гланды и заставляешь его показать, как он подключает сей девайс к 1с.
#4 by abuca
Жаль выходные терять. Есть, как вариант, обмен с контроллером на Json, однако здесь я несилен. Не имел опыта. Но если не останется возможности, придется пробовать так.
#5 by Mauser
>...придется пробовать так Уж извольте, батенька, не побрезгуйте рукавешки-то засучить.
#6 by lEvGl
там есть исходники для ++, шарп, делфи если напрямую не цепляется, то можно создать свою длл, комвидимую, в нее добавить эту и вызывать, делов на не долго
#7 by Mauser
Имея заголовочные файлы и библиотеку, компонента пишется за день. Думаю, что разработчики "одной из жадных конфигураций "Фитнес"" так и сделали. По крайней мере плача на мисте от них не слышно.
#8 by abuca
намек ясен.
#9 by Serginio1
Или использовать нетовскую DLL через
#10 by abuca
Сегодня попробовал DynamicWrapperX Геморрой с типами. Чертевчем возвращает (точнее все в целочисленном приходит), чертевчем надо отправлять в методы. Куча типов в виде структур тех же типов внутри. Воспользуюсь услугами по перекомпиляции нативной в СОМ. Запросил исходники.
#11 by H A D G E H O G s
В описании говориться о native API, это никак не связано с 1С врешними NAPI компонентами. Там говорится о том, что библиотека - не КОМ, а просто предоставляет экспортные функции (ну типа работает в линуксах). Есть примеры импорта ее функций в Дельфи, C++, C# (заголовочные файлы). Фсе. Дальше афтор крутится сам - либо пишет COM ВК, либо NAPI ВК поверх заголовочных файлов, ибо эти заголовочные файлы на свой вход требуют Структуры.
#12 by H A D G E H O G s
А функций и структур там до чертовой бабушки.
#13 by abuca
Я Вам написал на ящик, указанный в ЛК. Я, к сожалению, не программирую ни в чем кроме 1С. Мне затруднительно создать ВК.
#14 by abuca
как вариант мне предложили это: Однако здесь надо напрямую кидать на порт. Предполагается, что контроллер подключен в сеть предприятия.
#15 by Serginio1
Надо понимать код. Скомпилируй из исходников C# и используй Или попроси когонибудь, что бы написали
#16 by abuca
т.е. если у меня есть: ZGuard.cs   Его компилировать? В DLL? Но DLL у меня есть. можно ли вызвать ее Врап.ПолучитьТипИзСборки("ZGuard.ZG_CTR_EV_TYPE","C:GuardGuard.dll") ZGuard.cs Содержит след. код: public enum ZG_CTR_EV_TYPE     { ............ Получается, чтобы получить тип к примеру ZG_EV_BUT_OPEN нужно сделать так:
#17 by abuca
Произошла исключительная ситуация (mscorlib): Не удалось загрузить файл или сборку "file:///C:SDK GuardGuard.dll" либо одну из их зависимостей. Ожидалось, что модуль содержит манифест сборки. манифест... где-то я это слышал...
#18 by H A D G E H O G s
Ты путаешь классы NET, которые могут экспортироваться библиотекой NET (наверное) и тупо структуру в памяти, которая даже не экспортируется, а описывается в документации к dll, создается в памяти вызывающей программе, а в функцию dll передается указатель на данную структуру. Но могу ошибаться.
#19 by abuca
Создал проект C#. Загрузил в него исходный код библиотеки. Вроде, что-то похожее на манифест получилось:
#20 by abuca
Теперь, другой конфуз. ZGuard.dll ссылается на ZPort.dll: error CS0246: Не удалось найти имя типа или пространства имен "ZPort" (пропущена директива using или ссылка на сборку?) Есть код на C# обеих. Как в одном проекте 2 DLL собрать, чтобы вторая видела первую и собиралась???
#21 by abuca
Правильно, не отвечайте мне. В проекте надо было добавить ссылку и указать путь к dll. Скомпилировалось.
#22 by Serginio1
Все dll должны лежать в одном месте. Удачи!
#23 by H A D G E H O G s
Врап.ПолучитьТипИзСборки получает NET класс из NET dll, ведь так?
#24 by abuca
Йеееее!!! Я это сделал!!! Спасибо всем! Вижу все переменные, описанные в ZGuard.ZG_CTR_EV_TYPE дальше все понятно, вроде...
#25 by abuca
Особенное спасибо. Повернули в нужную сторону.
#26 by Serginio1
Спасибо! Я рад, что мои труды не напрасны.
#27 by Serginio1
Да. Вернее получает Сом объект в который обернуты данные Типа. А из типа мы можем создать объект, получить доступ к статическим методам и свойствам.
#28 by abuca
Там в dll пара десятков функций. DLL не COM видимая. Голову сломал, как пробросить методы, чтобы их увидеть. Все, плюнул. Делаю по протоколу. Уже пишу и читаю. Добрался до памяти контроллера. Думаю к НГ уже будет обработка обслуживания.
#29 by abuca
Однако персональное спасибо. Врап - классная штука. Буду пользоваться.
#30 by abuca
Вот такой монстр получается из-за логических преобразований байтов в отправке и получении (часть функции преобразования пакета на отправку в контроллер из 4х байт в 5):
#31 by Serginio1
Я как то отдельно не пользовался AND. Но есть OR. Можно по образу и подобию создать и AND public object OR(params object[] параметры1)         { Просто если ты правишь исходники, то там можешь добавить функцию
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям