Разработка DLL для 1С
Есть умельци которые это реализовали и могут показать?
Сколько тем не перелопатил все не то... показывают все через COM, а мне надо, чтобы чистый файл DLL подключил как внешнюю компоненту конфигуратором 1С и юзать функции от туда.
Если можно примерчиком!
Заранее спасибо, Ганиев Ренат.
Дело в том что там есть пару ньюансов при создании ДЛЛок. Я бы хотел их все узнать...
А еще лучше какойнить маленький шаблонный исходничек на С++, а то такое ощущение что все примеры на Delphi. :(
Заранее спасибо!
В таком случае, надо указывать точно, что вам нужно. По вопросам создания dll - воспользуйтесь поиском по сайту.
Дело в том что там есть пару ньюансов при создании ДЛЛок. Я бы хотел их все узнать...
Очень информативно. Но, к сожалению, телепатией я не владею, поэтому точнее укажите, пожалуйста... :)
А еще лучше какойнить маленький шаблонный исходничек на С++...
Могу предоставить, но исключительно из билдеровского визарда...
Дело в том что там есть пару ньюансов при создании ДЛЛок. Я бы хотел их все узнать...
А еще лучше какойнить маленький шаблонный исходничек на С++, а то такое ощущение что все примеры на Delphi. :(
Заранее спасибо!
При создании Dll есть довольно много нюансов, и часто некоторые из них неизвестны даже профессиональным программистам. Расписать все их на форуме сложно. Если у вас есть конкрентный вопрос - задайте, я постараюсь помочь. Если говорить о dll в общем, то мое мнение таково. Если вы хотите быстро и поверхностно (всмысле, не вникая в системные свойства dll), научиться их создавать, то могу посоветовать статью
http://citforum.ru/book/cook/dll0.shtml. Если же вы хотите глубоко понять этот аспект windows - программирования, то советую Д.Рихтер, создание эффективных win32 приложений .
Я конечно попытаюсь пояснить все поподробней. На сколько я сам узнал все на сегодняшний день.
Допустим первая проблема была связана с ошибкой:
Ошибка при создании объекта из компоненты C:\Program Files\1Cv77\BIN\kkldll.dll (отсутствует CLSID)
насколько я накопал это связанно с тем что надо зарегестрировать DLL с помощью regsvr32 ИмяDLL, попытался сделать это, но при регистрации выдала ошибку - Не найдена точка входа, хотя ДЛЛ создан правильно и через программу я "коннектился" к ней очень просто, и 1С тоже "коннектится", но потом вылетает при попытке создать объект.
потом я узнал что для длл1С в самой длл необходимо указать так называемый уникальный - GUID
Который должен быть равен чему то равному - '{808C78D2-25BB-11d1-A4CB-FA4095EDDAEA}'
Еще узнал что в DLL должен быть класс т.к. при создании объекта в 1С там идет обращение к классу внутри DLL.
Вот пример:
Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "ExtForms\" + "v7plus.dll") <> 1 Тогда
Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "v7plus.dll") <> 1 Тогда
Предупреждение("Компонента v7plus.dll не найдена!");
КонецЕсли;
КонецЕсли;
КонецЕсли;
НТТРСервис = СоздатьОбъект("AddIn.V7HTTPReader");
ПослатьФайл();
еще один интересный факт, после создания объекта HTTPСервер идет обращение к функциям на русском языке!
Вот часть кода в функции - ПослетьФайл();
НТТРСервис.УстановитьЗаголовокЗапроса("Content-Type", "text/xml-SOAP");
НТТРСервис.ОтправитьДляОбработки(Адрес, ПолноеИмяФайла, 1, Ответ, 2) ;
тоже если честно удевило. Но это конечно не объязательно можно обращатся и на английском. Просто стало интересно. :)
Вродебы все. Все что я успел узнать, что там еще может быть я не могу сказать так как с созданием DLL знаком очень мало. В основе своей использовал только DLL созданные визардом.
Я думал может у кого былл опыт в создании DLL под 1С.
Если это не поможет, то я уж и не знаю.