Работа с DLL-ками из 1С #350284


#0 by MegaDRON
Здравствуйте. Подскажите, как вызвать функцию из DLL-ки и передать ей параметры.
#1 by ДенисЧ
msdn://rundll32.exe
#2 by MegaDRON
А как это сделать из 1С? Файл к которому надо обратиться skidki.dll Внутренее имя функции AddPurch (Параметр1, Параметр2)
#3 by ДенисЧ
напрямую штатными методами - никак. Или или своя ВК, или wshell
#4 by H A D G E H O G s
Судя по личной карточке - библиотеку писали не вы? Так?
#5 by MegaDRON
Нет, не я писал библиотеку. Я тут не один программист. Просто я нифига не шарю во всем кроме 1С, а второй понимает все кроме 1С.
#6 by ДенисЧ
тогда второй пусть оформит длл в виде внешней компоненты. Там ничего шарить в 1с не надо будет.
#7 by H A D G E H O G s
Пусть пишет COM - Server. Там объекты/интерфейсы прикрутить - как 2 кнопочки в Дельфишнике создать.
#8 by MegaDRON
Он ее и сделает внешней компонентой, а как вызвать одну из функций этой DLL-ки по имени или номеру???
#9 by ДенисЧ
Если он сделает её ВК, то таких извратов не нужно будет. Просто по имени вызывать можно будет после загрузки
#10 by H A D G E H O G s
Не надо ВК. Пусть COM Server будет..
#11 by ado
Садитесь с рядышком с коллегой, и читайте ;
#12 by ДенисЧ
а чем тебе ВК не ком-сервер?
#13 by H A D G E H O G s
Смогешь ВК в Экселе поднять.? Скажем, это специфический COM сервер... Еще и без библиотеки типов
#14 by ДенисЧ
а зачем? Приспичит - поднимем. Но смысла не вижу :-)
#15 by H A D G E H O G s
Ну проще COM сервер писать, он и универсальней и быстрее.
#16 by MegaDRON
спасибо за ссылочки. Почитаю.
#17 by MegaDRON
В общем начал делать:
#18 by ДенисЧ
Соответственно там функция должна принимать 4 параметра: 2 входных, 2 выходных
#19 by MegaDRON
Пробую Денис, спасибочки
#20 by MegaDRON
Столкнулся с такой проблемой. Находясь в ЧекеККМ, ввожу номер карты и при попытке получить сведения от DCOM-сервера получаю следующее сообщение: SkidkiVK : Нарушение доступа по адресу 067D55D0 в модуле 'SkidkiVK.dll'. Чтение по адресу 00000054 ОбращениеКПрограмме.ПрочестьКарту(ПричинаСкидки); {Документ.ЧекККМ.Форма.Модуль}: Ошибка при выполнении метода объекта компоненты D:1cKlassicDBKL_SKIDKISkidkiVK.dll Не могу никак понять что мне хотят сказать. Судя по поведению базы видно в работу Dll-ки я включился, потому что если вводить в поле ПричинаСкидки (ну или номер карты) символы отличные от цифр, то срабатывает защита предусмотренная в самой DLL-ке SkidkiVK : Параметр номер 1 не может быть преобразован в целое число. ОбращениеКПрограмме.ПрочестьКарту(ПричинаСкидки); {Документ.ЧекККМ.Форма.Модуль}: Ошибка при выполнении метода объекта компоненты D:1cKlassicDBKL_SKIDKISkidkiVK.dll. видимо уже при попытке обращения к DCOM возникают какие то проблемы. Не пойму только причем тут Нарушение доступа, вроде обладаю всеми правами которые могут быть. Вопрос 1. Возможно ли как-то передать из DLL-ки в сообщения 1С грамотное описание возникновения ошибки, потому что не понятно что такое "по адресу 067D55D0 ". Вопрос 2. Кто-нибудь знает что это вообще за ошибка с доступом? Dll-ка зарегестрирована "regsvr32  D:1cKlassicDBKL_SKIDKISkidkiVK.dll" без проблем и до попытки залезть в DCOM работает без проблем. Вопрос 3. Как вызвать из 1С любую программу, ну скажем Виндовый Блокнот для примера. Текст из программы с залезанием в DLL. Процедура ДанныеПоКарте Еще раз скажу что до попытки залезть в DCOM я получал пробные ответы от DLL-ки успешно.
#21 by MegaDRON
Может кто сталкивался с подобными вещами, помогите плиз.
#22 by The gray Cardinal
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям