Имя: Пароль:
1C
 
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
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
(32) 24,25, 26

Или через v8: v8: Использование сборок .NET в 1С 7.x и 8.x

Visual Basic Source Code
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) Да, да, это важно!
А в целом всем советую этот сайт. Делают установку, настройку, доработку. Реагируют быстро и голову не приходится "ломать" над решением разного рода проблем. Работаем давно и плодотворно. Помогают во всем и в кротчайшие сроки.
Но самое приятное - это гарантия на все работы и дальнейшее сопровождение.