Вход | Регистрация



64-битная COM компонента GoldParser помогите сделать

64-битная COM компонента GoldParser помогите сделать
Я
   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)?
 
 
   jsmith
 
1 - 04.10.16 - 00:05
Да, юзай си шарп.
   TormozIT
 
2 - 04.10.16 - 00:07
(1) Могу юзать хоть квантовую теорию. Но как и все мы, я начинаю с самых мало затратных и быстрых вариантов.
   Serginio1
 
3 - 04.10.16 - 00:36
   Serginio1
 
4 - 04.10.16 - 00:37
   TormozIT
 
5 - 04.10.16 - 07:24
Если уж делать ВК, то кроссплатформенный. Net это не даст.
Поэтому COM компоненту в первую очередь хочется. Если не получится, то тогда ВК.
   Serginio1
 
6 - 04.10.16 - 07:40
   Serginio1
 
7 - 04.10.16 - 07:42
А COM значит кроссплатформенный?
Кстати v8: v8: Использование сборок .NET в 1С 7.x и 8.x на Com и основан. Он оборачивает .Net объект через Idispatch
   TormozIT
 
8 - 04.10.16 - 07:54
(6) Похоже был не прав. Буду знать. Но в любом случае повторю, что в первую очередь хотелось бы COM с минимальными затратами.
(7) Разве я это утверждал?
   Serginio1
 
9 - 04.10.16 - 08:01
Ну так я тебе и предлагаю COM. Просто через явную обертку.
На самом деле если исходники есть, то несложно и COM сделать. Если есть нужный интерфейс то выкладывай. Попробую сделать на досуге.
   Mauser
 
10 - 04.10.16 - 08:09
(0) Нет. VB не умеет собирать 64битные проекты. Кроме того он завязан на рантайм библиотеки, которых в 64битном виде в природе не существует.
Самое простое - вообще ничего не переписывать и попробовать запуск через ком суррогат, по аналогии с 32битным комконнектором 1С в 64битном окружении.
 
 Рекламное место пустует
   MM
 
11 - 04.10.16 - 08:32
(10) Вот только автор, видимо, хочет получить универсальный механизм, для http://devtool1c.ucoz.ru/ ,  который будет просто устанавливаться и не потребует специальной настройки.
   Mauser
 
12 - 04.10.16 - 08:37
(11) Я бы послушал автора. Спасибо.
   TormozIT
 
13 - 04.10.16 - 09:53
(11) Верно. Установка внепроцессных COM+ приложений сильно замедлит работу и без того медленного движка парсера. К тому же потребует указания учетки с паролем при установке. Это неприемлемо.
   Serginio1
 
14 - 04.10.16 - 09:55
Я так понимаю тебе этот класс нужно реализовать?
http://goldparser.org/engine/1/vb6/doc/index.htm

Давай ProgID какой хочешь. Напишу на .Net
   TormozIT
 
15 - 04.10.16 - 10:00
(14) У меня своих исходников конечно же нет. Я использовал готовый dll COM компоненты http://goldparser.org/engine/1/vb6/index.htm

Если правда собрался написать COM компоненту на Net, то хотелось бы понимать сколько часов это примерно займет (10, 20, 50)?
Я готов оплатить работу при условии предоставления всех исходников.
   TormozIT
 
16 - 04.10.16 - 10:01
Также опиши сразу требования, которые она будет накладывать на среду исполнения.
   Serginio1
 
17 - 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
   Serginio1
 
18 - 04.10.16 - 10:09
То есть можно под .Net 3.5 скомпилировать. Она есть и на XP.

Просто у меня проблемы с VB.Net.
А почему не хочешь через v8: v8: Использование сборок .NET в 1С 7.x и 8.x

Там писать вообще ничего не надо.
   Serginio1
 
19 - 04.10.16 - 10:20
Вот кстати есть конвертер http://www.vbto.net/
   TormozIT
 
20 - 04.10.16 - 10:23
(19) Описание дарит надежды. Спасибо. Вечером попробую.
   Serginio1
 
21 - 04.10.16 - 10:38
Но по сути там для каждого класса надо прописать секцию

[ComVisible(true)]
[ProgId("Project1.Class1")]
[ClassInterface(ClassInterfaceType.AutoDual)]

И все.
   Serginio1
 
22 - 04.10.16 - 10:39
А исходники есть здесь http://goldparser.org/engine/5/net/
   TormozIT
 
23 - 04.10.16 - 23:33
(21) Где там?
(19) Больше 800 строк бесплатно не конвертит =( Живой варез не найден.
   Serginio1
 
24 - 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)]
   Serginio1
 
25 - 05.10.16 - 00:12
   Serginio1
 
26 - 05.10.16 - 00:14
Просто тебе из  Visual Basic 6.0 нужно хотя бы ProgId взять.
Если для обектов не нужны ProgId то достаточно

[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
   TormozIT
 
27 - 05.10.16 - 00:45
(26) Спасибо. Что то начало получаться.
   Serginio1
 
28 - 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
   Mauser
 
29 - 05.10.16 - 10:00
(28) А ты часом не занимался альфа-авто, не было у тебя знакомого, которому помогли вот эти ребята?
   Serginio1
 
30 - 05.10.16 - 10:07
(29) Нет.
   Serginio1
 
31 - 05.10.16 - 10:07
(29) Но ко мне часто обращаются написать обработку используя различные нетовские библиотеки.
   TormozIT
 
32 - 05.10.16 - 13:35
C# исходники реализуют далекую от VB6 варианта объектную модель.
Видимо придется пробовать на VB Net. Как там COM интерфейс прилепить?
   Serginio1
 
33 - 05.10.16 - 13:56
(32) 24,25, 26

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

Visual Basic Source Code
 
 
   TormozIT
 
34 - 09.10.16 - 22:55
Пол дня дня ушло на то, чтобы разобраться с тонкостями публикации Net классов в COM. Еще пол дня на адаптацию исходников движка нового поколения для совместимости со старым. В итоге компонента заработала и в 32b и в 64b режимах. К тому же новая версия движка заметно быстрее старой.

Еще раз спасибо Serginio1 за подсказки.
   oleg_km
 
35 - 09.10.16 - 23:18
(34) Молодец, я неделю вкуривал, вот что значит молодость.
   Serginio1
 
36 - 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
   Mauser
 
37 - 10.10.16 - 07:11
(36) Да, да, это важно!
А в целом всем советую этот сайт. Делают установку, настройку, доработку. Реагируют быстро и голову не приходится "ломать" над решением разного рода проблем. Работаем давно и плодотворно. Помогают во всем и в кротчайшие сроки.
Но самое приятное - это гарантия на все работы и дальнейшее сопровождение.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует