|
64-битная COM компонента GoldParser помогите сделать | ☑ | ||
---|---|---|---|---|
0
TormozIT
гуру
04.10.16
✎
00:02
|
Для парсинга текстов по грамматикам подсистема "Инструменты разработчика" используют движок GOLDParser, а точнее его COM-реализацию
http://goldparser.org/engine/1/vb6/index.htm Конечно же эта реализация 32-битная. Хочу сделать 64-битную, но исходники на Visual Basic 6.0 (расширение главных файлов vbp и vbw), который вроде бы не поддерживал компиляцию под 64 бита. В Visual Studio 2008 я смог импортировать их только в проект Visual Basic Net. Подскажите есть ли способ перекомпилировать эти исходники под 64 бита (COM)? |
|||
1
jsmith
04.10.16
✎
00:05
|
Да, юзай си шарп.
|
|||
2
TormozIT
гуру
04.10.16
✎
00:07
|
(1) Могу юзать хоть квантовую теорию. Но как и все мы, я начинаю с самых мало затратных и быстрых вариантов.
|
|||
3
Serginio1
04.10.16
✎
00:36
|
||||
4
Serginio1
04.10.16
✎
00:37
|
||||
5
TormozIT
гуру
04.10.16
✎
07:24
|
Если уж делать ВК, то кроссплатформенный. Net это не даст.
Поэтому COM компоненту в первую очередь хочется. Если не получится, то тогда ВК. |
|||
6
Serginio1
04.10.16
✎
07:40
|
(5) Да ну? 1С,Linux,Excel,Word,OpenXML,Net Core
|
|||
7
Serginio1
04.10.16
✎
07:42
|
А COM значит кроссплатформенный?
Кстати v8: v8: Использование сборок .NET в 1С 7.x и 8.x на Com и основан. Он оборачивает .Net объект через Idispatch |
|||
8
TormozIT
гуру
04.10.16
✎
07:54
|
(6) Похоже был не прав. Буду знать. Но в любом случае повторю, что в первую очередь хотелось бы COM с минимальными затратами.
(7) Разве я это утверждал? |
|||
9
Serginio1
04.10.16
✎
08:01
|
Ну так я тебе и предлагаю COM. Просто через явную обертку.
На самом деле если исходники есть, то несложно и COM сделать. Если есть нужный интерфейс то выкладывай. Попробую сделать на досуге. |
|||
10
Mauser
04.10.16
✎
08:09
|
(0) Нет. VB не умеет собирать 64битные проекты. Кроме того он завязан на рантайм библиотеки, которых в 64битном виде в природе не существует.
Самое простое - вообще ничего не переписывать и попробовать запуск через ком суррогат, по аналогии с 32битным комконнектором 1С в 64битном окружении. |
|||
11
MM
04.10.16
✎
08:32
|
(10) Вот только автор, видимо, хочет получить универсальный механизм, для http://devtool1c.ucoz.ru/ , который будет просто устанавливаться и не потребует специальной настройки.
|
|||
12
Mauser
04.10.16
✎
08:37
|
(11) Я бы послушал автора. Спасибо.
|
|||
13
TormozIT
гуру
04.10.16
✎
09:53
|
(11) Верно. Установка внепроцессных COM+ приложений сильно замедлит работу и без того медленного движка парсера. К тому же потребует указания учетки с паролем при установке. Это неприемлемо.
|
|||
14
Serginio1
04.10.16
✎
09:55
|
Я так понимаю тебе этот класс нужно реализовать?
http://goldparser.org/engine/1/vb6/doc/index.htm Давай ProgID какой хочешь. Напишу на .Net |
|||
15
TormozIT
гуру
04.10.16
✎
10:00
|
(14) У меня своих исходников конечно же нет. Я использовал готовый dll COM компоненты http://goldparser.org/engine/1/vb6/index.htm
Если правда собрался написать COM компоненту на Net, то хотелось бы понимать сколько часов это примерно займет (10, 20, 50)? Я готов оплатить работу при условии предоставления всех исходников. |
|||
16
TormozIT
гуру
04.10.16
✎
10:01
|
Также опиши сразу требования, которые она будет накладывать на среду исполнения.
|
|||
17
Serginio1
04.10.16
✎
10:07
|
Вот смотри http://goldparser.org/engine/5/net/
Здесь есть исходники. Можешь и сам. Там несложно http://www.artinsoft.com/com-class-exposure.aspx http://forum.foxclub.ru/read.php?29,611394 |
|||
18
Serginio1
04.10.16
✎
10:09
|
То есть можно под .Net 3.5 скомпилировать. Она есть и на XP.
Просто у меня проблемы с VB.Net. А почему не хочешь через v8: v8: Использование сборок .NET в 1С 7.x и 8.x Там писать вообще ничего не надо. |
|||
19
Serginio1
04.10.16
✎
10:20
|
Вот кстати есть конвертер http://www.vbto.net/
|
|||
20
TormozIT
гуру
04.10.16
✎
10:23
|
(19) Описание дарит надежды. Спасибо. Вечером попробую.
|
|||
21
Serginio1
04.10.16
✎
10:38
|
Но по сути там для каждого класса надо прописать секцию
[ComVisible(true)] [ProgId("Project1.Class1")] [ClassInterface(ClassInterfaceType.AutoDual)] И все. |
|||
22
Serginio1
04.10.16
✎
10:39
|
А исходники есть здесь http://goldparser.org/engine/5/net/
|
|||
23
TormozIT
гуру
04.10.16
✎
23:33
|
(21) Где там?
(19) Больше 800 строк бесплатно не конвертит =( Живой варез не найден. |
|||
24
Serginio1
05.10.16
✎
00:03
|
(23) В исходниках по ссылке http://goldparser.org/engine/5/net/
Visual Basic Source Code Для каждого класса нужно прописать [ComVisible(true)] [ProgId("Project1.Class1")] [ClassInterface(ClassInterfaceType.AutoDual)] [Guid("Твой-GUID-4276-928A-8B91C9891FF1")] А в AssemblyInfo [assembly: ComVisible(false)] |
|||
25
Serginio1
05.10.16
✎
00:12
|
||||
26
Serginio1
05.10.16
✎
00:14
|
Просто тебе из Visual Basic 6.0 нужно хотя бы ProgId взять.
Если для обектов не нужны ProgId то достаточно [ComVisible(true)] [ClassInterface(ClassInterfaceType.AutoDual)] |
|||
27
TormozIT
гуру
05.10.16
✎
00:45
|
(26) Спасибо. Что то начало получаться.
|
|||
28
Serginio1
05.10.16
✎
09:57
|
Я конечно не особый знаток парсеров. Но используя
v8: v8: Использование сборок .NET в 1С 7.x и 8.x Можно использовать любые библиотеки на .Net http://www.codeproject.com/Articles/664785/A-New-Parser-Generator-for-Csharp |
|||
29
Mauser
05.10.16
✎
10:00
|
(28) А ты часом не занимался альфа-авто, не было у тебя знакомого, которому помогли вот эти ребята?
|
|||
30
Serginio1
05.10.16
✎
10:07
|
(29) Нет.
|
|||
31
Serginio1
05.10.16
✎
10:07
|
(29) Но ко мне часто обращаются написать обработку используя различные нетовские библиотеки.
|
|||
32
TormozIT
гуру
05.10.16
✎
13:35
|
C# исходники реализуют далекую от VB6 варианта объектную модель.
Видимо придется пробовать на VB Net. Как там COM интерфейс прилепить? |
|||
33
Serginio1
05.10.16
✎
13:56
|
||||
34
TormozIT
гуру
09.10.16
✎
22:55
|
Пол дня дня ушло на то, чтобы разобраться с тонкостями публикации Net классов в COM. Еще пол дня на адаптацию исходников движка нового поколения для совместимости со старым. В итоге компонента заработала и в 32b и в 64b режимах. К тому же новая версия движка заметно быстрее старой.
Еще раз спасибо Serginio1 за подсказки. |
|||
35
oleg_km
09.10.16
✎
23:18
|
(34) Молодец, я неделю вкуривал, вот что значит молодость.
|
|||
36
Serginio1
10.10.16
✎
00:22
|
(34) Я все таки настоятельно советую обратить внимание на
v8: v8: Использование сборок .NET в 1С 7.x и 8.x Преимущества рнгистрируешь только одну библиотеку. При этом используешь любую сборку .Net, в том числе и написанную тобой под определенные задачи. Для интереса попробуй вызвать код из твоей сборки. Скачать можно здесь http://ru.stackoverflow.com/questions/527763/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b7%d0%b2%d0%b0%d1%82%d1%8c-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b8%d0%b7-c-%d0%b2-1%d0%a1/527802#527802 |
|||
37
Mauser
10.10.16
✎
07:11
|
(36) Да, да, это важно!
А в целом всем советую этот сайт. Делают установку, настройку, доработку. Реагируют быстро и голову не приходится "ломать" над решением разного рода проблем. Работаем давно и плодотворно. Помогают во всем и в кротчайшие сроки. Но самое приятное - это гарантия на все работы и дальнейшее сопровождение. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |