|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 11
|
|||||||||||||||||||||||||||||||
Обертка Native для DBX32 (использование в 1С)19.06.2017, 06:40. Показов 3034. Ответов 18
Добрый день. Прошу помощи. Есть библиотека DBX32.dll, которая предоставляет возможность работы с PCADом. 1С напрямую с такой работать не умеет, поэтому нужно сделать некоторую обертку. Опишу свои действия:
- скачал примеры внешних компонент от 1С, выбрал проект AddInNative. Без моего вмешательства компонента собирается и работает в 1С нормально. - в поставке PCADа есть файлы: Dbx32.dll, Dbx32.h, Dbx32.lib, DbxUtils.cpp, DbxUtils.h. Заголовочные файлы я добавляю в проект, и подключаю их в основном файле:
- в файле Dbx32.h присутствуют следующее:
Error C2040 'tContext': 'DbxContext *' differs in levels of indirection from 'DbxContext' Подскажите, что делаю не так? Пробовал по-разному объявлять tConecxt, ничего не выходит. Делаю в VS2015. С++ вижу всего неделю, уж сильно не пинайте.
0
|
|||||||||||||||||||||||||||||||
| 19.06.2017, 06:40 | |
|
Ответы с готовыми решениями:
18
Использование .NET Native
Обертка для list |
|
|
|||||||||||||||||||||
| 20.06.2017, 14:52 | |||||||||||||||||||||
где то в файлах есть объявление
(чтобы отправить в функцию нужен амперсанд & tContext)
1
|
|||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 11
|
|||||||||||||||||||||||||||||||
| 23.06.2017, 10:47 [ТС] | |||||||||||||||||||||||||||||||
|
Спасибо большое. При повторном объявлении с использованием extern сыпались ошибки.
А вот объявления
Дальше сложнее, но пока движется. Добавлено через 3 часа 22 минуты Еще хотел бы спросить. Пытаюсь вернуть значение из компоненты в 1С. Есть такая функция как
Описание: Выполняется метод с порядковым номером lMethodNum. Если метод возвращает false,Есть у неё параметр:
Есть такая штука как
Пробовал вот так:
В примерах увидел, что используется AllocMemory. С этим методом не до конца разобрался. В примере используют так:
0
|
|||||||||||||||||||||||||||||||
|
|
||||
| 23.06.2017, 11:57 | ||||
|
Если он используется для сборки DBX32.dll, то добавлять в проект его не нужно. Вообще, в документации к библиотеке должно же быть указано, какие файлы включить в проект. Примеры какие-то должны быть. Добавлено через 35 секунд
0
|
||||
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 11
|
||||||
| 26.06.2017, 05:44 [ТС] | ||||||
|
Если в основном файле AddInNative.cpp пишу
Error LNK2001 unresolved external symbol "struct DbxContext tContext" (?tContext@@3UDbxContext@@A) AddInNative Error LNK2001 unresolved external symbol "long tStatus" (?tStatus@@3JA) AddInNative Про DbxUtils в описании сказано, что необходимо для работы с единицами измерений и прочее. Сильно не вдавался, но включил на всякий случай.
0
|
||||||
|
|
||||||||
| 27.06.2017, 05:23 | ||||||||
|
Мне это не понятно. Тоже попытался обращаться к DBX32.dll. Через extern получаю аналогичную ошибку. Без extern :
"DBX in progress". Но DbxContext tContext; и long tStatus; это локальные переменные. Раз они укзаны в DBX32.h через extern, значит в каком то файле участвовавшем в сборке длл объявлены внешние переменные tContext и tStatus. Иначе библиотека не собралась бы. Да и в документации об этом говорится :
0
|
||||||||
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 11
|
||||||
| 27.06.2017, 05:38 [ТС] | ||||||
|
RuningMan,
Получается у меня так же сейчас работает, и вроде как это правильно. Переменные объявлены как
Честно тяжело с С++, так как я первый раз с этим столкнулся.
0
|
||||||
|
|
||
| 27.06.2017, 05:41 | ||
|
Похоже на несоответствие заголовочных файлов библиотекам. Или документация устарела.
Добавлено через 3 минуты PS Это всего лишь моё скромное мнение .
0
|
||
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 11
|
|
| 27.06.2017, 05:49 [ТС] | |
|
RuningMan, к сожалению, не совсем понимаю вас. Не хватает мне знаний по плюсам.
0
|
|
|
|
||||||||
| 27.06.2017, 06:20 | ||||||||
|
В заголовочных файлах, там есть класс который наследуется от CView,
у него есть поля DbxContext tContext , long tStatus и коменнтарий к ним стоит // Global DBX Conversation Data // Global Return status variable . Почему то ??? Но это же совсем не то. Вот где эти глобальные переменные ? .. Не нашёл. Добавлено через 5 минут Добавлено через 21 минуту
0
|
||||||||
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 11
|
|
| 27.06.2017, 06:39 [ТС] | |
|
то есть в начале файла *.cpp так описываем, и они у нас становятся глобальными?
0
|
|
|
|
|
| 27.06.2017, 06:49 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 11
|
|
| 27.06.2017, 07:47 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 11
|
||||||
| 27.06.2017, 12:31 [ТС] | ||||||
|
Продолжая тему обертки.
Native не позволяет передавать объекты, только простые типы. Для общения с 1С сложными объектами, планирую использовать json. В интернете есть много парсеров. Пробовал воспользоваться json.hpp. Но с этим файлом не компилируется проект. например сюда ругается:
0
|
||||||
|
|
|||
| 28.06.2017, 05:23 | |||
|
Скопировано с habrahabr.ru Кликните здесь для просмотра всего текста
0
|
|||
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 11
|
||||||||||||||||
| 29.06.2017, 05:19 [ТС] | ||||||||||||||||
|
RuningMan, тоже читал эту статью. Насколько я разобрался, такую структуру ждет 1С от внешней компоненты. Платформа 1С получает эту структуру, в зависимости от типа забирает соответствующее значение и пытается его привести к своему внутреннему типу. Это я так понял, но могу ошибаться.
В vt я должен указать какого типа будут данные, и потом в соответствующее свойство записать данные. Например:
И в комментариях к статье на хабре тоже писали, что передача массив все еще недоступна, только простые типы. Поэтому приходится придумывать.
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 11
|
|
| 06.07.2017, 06:13 [ТС] | |
|
Добрый день, RunningMan, продолжаю пилить свою компоненту для PCAD. Я так понял, что у вас был подобный опыт взаимодействия с PCAD, может быть подскажете один момент.
Реализовал вставку компонента в pcb, чтение элементов из pcb. Работает всё хорошо. Взялся за вставку в sch, и получил проблемку. При первой попытке вставляю компонент, нормально. При повторном обращении к sch у меня крашится 1С. Есть ли там какие-либо хитрые отличия работы с sch от работы с pcb. При этом я получаю информацию о sch, получаю перечень слоёв(листов). Но вот только после вставки компонента происходит вылет.
0
|
|
|
|
||
| 06.07.2017, 11:05 | ||
|
Здравствуйте.
1С в наличии нет, поэтому смоделировать полностью вашу ситуацию к сожалению не получится.
0
|
||
|
0 / 0 / 0
Регистрация: 19.06.2017
Сообщений: 11
|
|
| 06.07.2017, 11:25 [ТС] | |
|
RunningMan, понял.
Уже разобрался, как обычно, стоит только написать вопрос. ![]() Добавлено через 16 секунд RunningMan, понял. Уже разобрался, как обычно, стоит только написать вопрос.
0
|
|
| 06.07.2017, 11:25 | |
|
Помогаю со студенческими работами здесь
19
Обертка для rsync C++ обертка для OpenGL?
C++ обертка для dll C
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|