1

Тема: WSH: обсуждаем DynamicWrapperX от YMP

Предмет обсуждения:
JScript/VBScript + Win32 API: DynamicWrapperX
Пробуем, отписываемся о впечатлениях.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

2

Re: WSH: обсуждаем DynamicWrapperX от YMP

Ну, особых впечатлений не обещаю. Думаю, данный функционал интересен 1% скриптеров, которые, возможно, уже смотрят куда-нибудь пониже скриптов. По крайней мере мне старый DynamicWrapper пригодился именно в этом плане - как мостик.

3 (изменено: Poltergeyst, 2008-09-07 15:03:51)

Re: WSH: обсуждаем DynamicWrapperX от YMP

На первый взгляд достойная штука получилась - особенно привлекает
возможность callback.Было бы интересно увидеть DynamicWrapperX в
списке статей на главной странице.Интересно,а насколько сложно
создание Dll COM-компоненты на ассемблере GoAsm?И каковы в принципе
возможности и инструменты этого ассемблера?

4

Re: WSH: обсуждаем DynamicWrapperX от YMP

Poltergeyst пишет:

Было бы интересно увидеть DynamicWrapperX в
списке статей на главной странице.

Так и сделаем немного погодя.
Жду отзывов, как оно там работает. Себе в планы тоже поставил пощупать.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

5

Re: WSH: обсуждаем DynamicWrapperX от YMP

The gray Cardinal
Насчёт главной страницы у меня сомнения. Всё-таки код временем не проверен.

Poltergeyst
Возможности неограниченные, но не в том смысле, что программа создаётся нажатием кнопки. Мозги категорически необходимы, а результат пропорционален толщине мозоли на заднице. Это современный ассемблер, вплоть до того, что может собирать 64-разрядные программы. ДОСовские, правда, уже не делает. Полная поддержка Юникода, вплоть до того, что исходники могут быть в UTF-16 или UTF-8. Это меня тоже подкупило. Отличная справка, почти учебник, так что легко можно с самых азов начать. Правда, только на английском.

Набор инструментов включает ассемблер, линкер и компилятор ресурсов - всё, что необходимо, в общем. Хотя если нужна библиотека типов для СОМ-сервера (вообще говоря, она не обязательна), понадобится ещё Midl.exe от Майкрософта. Я его скачал в составе Platform SDK с их сайта.

Что касается СОМ, то, с одной стороны, не так уж страшен чёрт. Там всё стандартизовано. Такое ощущение, что достаточно один раз разобраться и написать один сервер. Потом эту заготовку нужно только приспосабливать к конкретным задачам - наполнять нужными методами. У меня ещё сложность была в том, что методы динамические, поэтому пришлось изобретать. Есть хорошая серия статей про СОМ - COM in plain C - 8 статей, если я все нашёл. Опять же на английском, но очень внятно и доходчиво объясняется устройство СОМ-сервера.

С другой стороны, мне помогло то, что я до этого уже пробовал писать на С, какие-то вещи знал. Возможно, я задним числом и преуменьшаю трудность, не знаю. Поскрипеть мозгами пришлось, конечно. Первый сервер я написал на С, ориентируясь на пример из статьи. На ассемблер потом уже только перевёл.
Разумеется, я допускаю, что в какой-нибудь навороченной среде разработки это делается двумя кликами мышки + 0 мысленных усилий. Но мне это не интересно, я извращенец.

Должен признать, что в ассемблере мозги приходится перестраивать, и мне это не вполне ещё удалось. Некоторые возможности не сразу осознаются, а с другой стороны поначалу не хватало if, else, while и т.п. В некоторых ассемблерах есть подобие этих конструкций, но не в GoAsm.

6

Re: WSH: обсуждаем DynamicWrapperX от YMP

YMP пишет:

Насчёт главной страницы у меня сомнения. Всё-таки код временем не проверен.

Примеры в справке работают, для публикации этого достаточно .
Вопрос: если я попрошу Gourmet перевести справку на английский, ты сможешь в дальнейшем поддерживать этот перевод в случае изменений?

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

7

Re: WSH: обсуждаем DynamicWrapperX от YMP

Так уж сразу и на английский? А зачем?

8

Re: WSH: обсуждаем DynamicWrapperX от YMP

YMP пишет:

Так уж сразу и на английский? А зачем?

Чтобы расширить аудиторию, получить ответную (возможно, полезную) информацию.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

9

Re: WSH: обсуждаем DynamicWrapperX от YMP

А как она расширится? Или у сайта есть английский вариант? А где он?

10

Re: WSH: обсуждаем DynamicWrapperX от YMP

YMP пишет:

А как она расширится? Или у сайта есть английский вариант? А где он?

Английского варианта этого сайта нет, но ссылку на английский вариант нашей статьи можно запостить где-нибудь на http://visualbasicscript.com/ и т.д. Ведь сам DynamicWrapper пришёл "оттуда", думаю, тамошнему народу будет очень интересно.
Мы такую аферу уже проворачивали с Андрогенычем и Gourmet .

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

11

Re: WSH: обсуждаем DynamicWrapperX от YMP

The gray Cardinal пишет:

Ведь сам DynamicWrapper пришёл "оттуда", думаю, тамошнему народу будет очень интересно.

I agree

I will translate your doc file in french

12

Re: WSH: обсуждаем DynamicWrapperX от YMP

Поддерживаю, про перевод не english. Все таки это de facto международный язык.
Вот представь себя на месте пользователя, каково было бы тебе разбираться пусть и с хорошей докой и по хорошему продукту, но на китайском.
В ту же тему: "CompanyName: Промартель №2" для нерусскоязычного пользователя - просто набор закорючек.

Еще хотелось бы расширить справку. Побольше примеров. Убрать отсылки к доке по "оригинальному" DynamicWrapper.
VBS и JS версии примеров на мой взгляд имеют смысл только в случае, когда они различаются по реализации (например работа с выходными параметрами).
Неплохо бы указать особенности работы в ASP.
Например, я заметил, что callback функции в ASP работают (что в общем-то неочевидно).

13

Re: WSH: обсуждаем DynamicWrapperX от YMP

fps пишет:

Убрать отсылки к доке по "оригинальному" DynamicWrapper.

Я категорически против убирания чего бы то ни было уже написанного . Только добавлять!

fps пишет:

VBS и JS версии примеров на мой взгляд имеют смысл только в случае, когда они различаются по реализации (например работа с выходными параметрами).

На мой взгляд, однозначно имеют смысл в любом случае, для удобства.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

14

Re: WSH: обсуждаем DynamicWrapperX от YMP

omen999 пишет:

I agree

I will translate your doc file in french

Are you going to translate from Russian or it would be more convenient for you to have an English version for translation?

15 (изменено: omen999, 2008-09-08 17:48:42)

Re: WSH: обсуждаем DynamicWrapperX от YMP

Surely, it would be more convenient to have english version but I'm still working on the russian one...

16

Re: WSH: обсуждаем DynamicWrapperX от YMP

fps пишет:

В ту же тему: "CompanyName: Промартель №2" для нерусскоязычного пользователя - просто набор закорючек.

Дык я будто на него расчитывал, на нерусскоязычного.

В перспективе думал об этом, но на данный момент не планировал. К примеру, если компонент скачает тот же китаец, то может выйти неприятность при конвертации строк. У них, я слышал, ANSI - это многобайтная кодировка, а не однобайтная. У меня все буфера расчитаны на однобайтную. Или взять конвертацию на месте из Юникода в ANSI. Что из этого выйдет при какой-нибудь экзотической кодировке, не знаю. Возможно, переполнение. Тут надо подумать, как это лучше разрулить, и очень неохота мне форсировать этот процесс. Хочется, чтобы он был творческим поиском оптимального решения, а не затыканием десяти пробоин девятью тряпками. А с этим не хотелось бы лезть на мировую арену. Если китаец, в порядке бреда, зайдёт сюда и скачает отсюда, то сам виноват, тут типа локализованная версия лежит.

Но раз уже у народа сложилось мнение, что надо переводить, то спорить не буду, с благодарностью приму помощь Gourmet.

fps пишет:

Неплохо бы указать особенности работы в ASP.
Например, я заметил, что callback функции в ASP работают (что в общем-то неочевидно).

Здесь не потяну, в ASP я полный ноль. Что касается добавления примеров, то также расчитываю на помощь заинтересованных лиц. Мне сложно судить, где именно они требуются. Мне-то всё и так понятно.

17

Re: WSH: обсуждаем DynamicWrapperX от YMP

omen999 пишет:

Surely, it would be more convenient to have english version but I'm still working on the russian one...

I thougt about writing an English version of the help file, but later on. Also, after some trying I realized it was not so easy as expected.

And how is it you know Russian?

18

Re: WSH: обсуждаем DynamicWrapperX от YMP

The gray Cardinal пишет:
fps пишет:

Убрать отсылки к доке по "оригинальному" DynamicWrapper.

Я категорически против убирания чего бы то ни было уже написанного . Только добавлять!

Именно добавлять. Я, видимо, неправильно выразился.
Т.е. не использовать фраз типа "смотри доку к оригинальной DynamicWrapper", а  добавить эти  фрагменты непосредственно в хелп. Сделать его полностью самодостаточным.

YMP пишет:

Дык я будто на него расчитывал, на нерусскоязычного

А почему бы и нет? Они же почти такие же как мы
Компонент-о полезный. Зачем заведомо отсекать кирилицей всех иноземцев.
Понимающих английский гораздо больше, чем понимающих русский.

19

Re: WSH: обсуждаем DynamicWrapperX от YMP

YMP пишет:

And how is it you know Russian?

I don't understand russian at all
but I have some knowledge about dynawrap and I guess I can do it with
my "google translater"

20

Re: WSH: обсуждаем DynamicWrapperX от YMP

fps пишет:

VBS и JS версии примеров на мой взгляд имеют смысл только в случае, когда они различаются по реализации (например работа с выходными параметрами).

В любом случае, желательно иметь оба варианта, хоть бы они принципиально ничем не отличались.

21

Re: WSH: обсуждаем DynamicWrapperX от YMP

Библиотека dynwrapx.dll и вызов функций Win 32 API

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

22

Re: WSH: обсуждаем DynamicWrapperX от YMP

YMP
Как указать в статье 1) авторство и 2) условия распространения?
(Приведи, пожалуйста, точный текст.)

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

23

Re: WSH: обсуждаем DynamicWrapperX от YMP

omen999
If you'd like, you could wait a bit until the English version is ready.

In any case when your translation is ready, could you, please, place the link to it here.

24

Re: WSH: обсуждаем DynamicWrapperX от YMP

The gray Cardinal пишет:

YMP
Как указать в статье 1) авторство и 2) условия распространения?
(Приведи, пожалуйста, точный текст.)

Например, так:

Автор библиотеки и данного описания: Юрий Попов.
Ник автора на форуме: YMP.
Условия распространения библиотеки: freeware.

25

Re: WSH: обсуждаем DynamicWrapperX от YMP

YMP
ОК, часов через 10-12 вставлю.

Вопрос: а можно ли спрограммировать COM-сервер таким образом, чтобы он был доступен через специальный моникер в GetObject() с указанием пути к файлу самой библиотеки, подобно WSC? Это дало бы возможность не регистрировать библиотеку.

В порядке бреда: а имело бы смысл включить в COM-сервер гору мнемонических сишных констант, которые могли бы пригодиться при вызовах API? Подобно тому, как я попытался это сделать здесь.

Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.