Техническая поддержка :

Современные решения

для защиты Windows программ

и восстановления исходного кода

Обсуждение программирования на Visual Basic в конференции ru.visual.basic

SUBJ: .h -> .bas конвертор
.h -> .bas конвертор

From: "A. Skrobov"

Hi All,

Существует ли сабж? Как-то же получили файл WIN32API.TXT

* Origin: FidoNet Online (2:5020/175.2)


Re: Visual Basic для детей.

From: "A. Skrobov"

Hello, Serge!
You wrote in conference fido7.ru.visual.basic to "A.Skrobov" to A. Skrobov on Fri, 9 Jan 2004
19:48:07 +0000 (UTC):

AS>> Я верю, что всё это из-за новизны информатики как предмета, и через
AS>> года выработается традиция её преподавания. Пока же на
AS>> школу/универ в обучении программированию надеяться нельзя.
SC> ... поэтому надеяться надо только на себя. А поскольку есть предметы,
SC> где таки можно на преподов надеяться, то народ в программирование не идет. А
SC> поскольку народ не идет в программирование, то и в дальнейшем программистов будет
SC> немного. И если среди них найдутся те кто согласится связать свою жизнь
SC> с преподаванием, то я думаю они будут не лучшими среди остальных
SC> программеров, а значит и преподавать нормально не смогут:). Замкнутый круг:)
Зря ты так. Откуда-то же берутся хорошие преподы по другим предметам.

SC> Поэтому единственный способ этому обучиться - самообучение, что дано естественно
SC> не всем. Hу ладно, скажем не "дано", а "выберут", хотя понятия и совершенно
SC> разные, но тут можно понимать их как одно.
Hе всем дано выбрать :-)

SC> А я в принципе и не против:). Пока так будет продолжаться, я, будучи
SC> программистом, гарантировано смогу найти достойную работу, в отличии от
SC> большого числа юристов, экономистов, менеджеров, среди которых хорошо
SC> устроиться смогут немногие:). Так что программеры рулят, а особенно с
SC> учетом того, что эти технологии все больше и больше внедряются в нашу жизнь:).
Если только все не будут думать так, как ты, и не подадутся в программирование в ущерб экономике, юриспруденции и менеджменту :-) Hа
самом деле очень многие идут учиться на программистов "потому что это круто". Получив, однако, знания исключительно о движении точки
по экрану, они получат тот же диплом, что и ты. Как же работодатель должен выбрать нормального программера? Кто круче понты будет
гнуть, того и возьмут работать, а знания здесь второстепенны имхо.
В юристы, менеджеры и экономисты идут тоже в основном не за знаниями, а за понтами. Если человек не будет _хотеть_ научиться, никто
его не научит. Я думаю, что на _хороших_ экономистов и т.п. и сейчас спрос велик.

SC> А вообще, если человек умеет программировать, то ему без разницы - на
SC> бумаге ли писать или на VB. Он даже на ассемблере сможет писать, при наличии
SC> соответствующей литературы, имхо. По крайней мере я:).
"А на каком языке вы пишете программы? - Hа родном, на грузинском!" (с) анекдот 15-летней давности


--
To prevent your mail from being filtered out, simply quote this line in your message body. A464E022



* Origin: Talk.Mail.Ru (2:5020/400)


проблема

From: "A. Skrobov"

Sat Jan 10 2004 05:36, Mike Shelkovnikov wrote to All:

MS> Возникла такая проблема. При использовании нескольких клиентов сообщение
MS> принемает только последний клиент.Отсылать можно с любого.
Поставь SP4

FIX: Winsock Control SendData Only Works Over the Latest Connection
View products that this article applies to.
This article was previously published under Q245159
SYMPTOMS
For a 32-bit Visual Basic application with multiple Winsock Control objects
that maintain TCP connections to other socket applications, SendData() only
works over the most recently established connection. This behavior is
reproducible on versions prior to and include Microsoft Visual Studio SP3.
CAUSE
The event messages associated with each SendData() are flushed from the
message queue by the latest socket connection. This causes data to queue up
and with no event messages available to start the data send process for
previous connections.
STATUS
Microsoft has confirmed that this is a bug in the Microsoft products that are
listed at the beginning of this article. This bug was corrected in the latest
service pack for Visual Studio 6.0.

For additional information about Visual Studio service packs, click the
following article numbers to view the articles in the Microsoft Knowledge
Base:
194022 INFO: Visual Studio 6.0 Service Packs, What, Where, Why

194295 HOWTO: Tell That a Visual Studio Service Pack Is Installed

To download the latest Visual Studio service pack, visit the following
Microsoft Web site:
msdn.microsoft.com/vstudio/downloads/updates.asp

MORE INFORMATION
To reproduce the problem assuming an application maintains an array of three
Winsock Control objects, each of controls has established a connection with
its peer side over TCP. Label the connections as C1, C2, and C3 based on the
order the connections are established, with C3 as the most recently
established connection. If you attempt to do the following: Private Sub
cmdSendData_Click()
Dim i As Long
For i = 1 To iIndex
If (socks(i).State = sckConnected) Then
socks(i).SendData txtSendData.Text
End If
Next i
End Sub

Only the peer side of C3 connection get the messages. If you disconnect C3,
the peer side of C2, which becomes the most recent connection at the time,
will start to receive messages intended for it.
REFERENCES
For additional information, see the following article or articles in the
Microsoft Knowledge Base:

183987 PRB: SendData Method Generates Error 40006

The information in this article applies to:
Microsoft Visual Basic Professional Edition for Windows 5.0
Microsoft Visual Basic Professional Edition for Windows 6.0
Microsoft Visual Basic Enterprise Edition for Windows 5.0
Microsoft Visual Basic Enterprise Edition for Windows 6.0
Last Reviewed: 8/28/2002 (1.0)
Keywords: kbbug kbCtrl kbDSupport kbnetwork kbVS600sp4fix kbVS600sp5fix
kbWinsock KB245159

* Origin: FidoNet Online (2:5020/175.2)


Re: Typeless data

From: "Sergey Merzlikin"

> Dim PB As New PropertyBag, X As Varian
>
> PB.WriteProperty "Picture", Pic1.Picture
> X = CStr(PB.Contents)
>
> MsgBox X
> 'Вот уже здесь выскакивает один только вопросительный знак

Во-первых, бинарный массив нужно конвертировать так:

X = StrConv(PB.Contents, vbUnicode)

CStr записывает бинарный массив в Unicode-строку как есть, т.е. каждые 2
байта массива = 1 символ строки. При таком подходе во время обратной
конвертации Unicode -> Ansi, которая произойдет при вызове C_DB.Exec,
потеряется каждый второй байт.

Во-вторых, имелась в виду конвертация во что-то читабельное, например, так:

Private Function BinToHex(b() As Byte) As String
Dim i As Long, lb As Long, ub As Long, h As String
lb = LBound(b)
ub = UBound(b)
BinToHex = String$((ub - lb + 1&) * 2&, "0")
For i = lb To ub
h = Hex$(b(i))
Mid$(BinToHex, (i - lb) * 2& + 3& - Len(h), Len(h)) = h
Next
End Function

>
> oDrs.UpdeteField "Photo", X, 1
> 'Это вызов процедуры класса, который работает с БД
> 'Далее процедура из класса
>
> Public Sub UpdeteField(FieldName As String, ByVal Val As String, ID_Dr As
> Integer)
>
> Set DS = C_DB.Exec("UPDATE DOCTORS SET " & FieldName & " = '" & Val & "'
WHERE
> RowID = " & ID_Dr)
>
> End Sub
>

Почитал, что люди пишут о SQLLite. Действительно, способа хранения бинарных
данных там не предусмотрено. Советуют либо хранить такие данные в отдельных
файлах (что мне кажется вполне разумным решением), либо конвертировать в
строки тем или иным способом. Кроме способа, описанного выше, существуют
более сжатые форматы Base64 и UUEncode, применяющиеся главным образом при
пересылке электронной почты. Можно придумать и свой способ конвертации,
учитывая, что база не переваривает только символ с кодом 0, остальные
непечатные символы вполне допустимы, например, заменить все VbNullChar (их,
скорее всего, будет много) на "0", все "0" - на "/0" а все "/" - на "//".

--
Сергей Мерзликин
www.smsoft.ru/ru/


* Origin: Sovintel (2:5020/400)


Typeless data

||*()*|| Ах это вы, Sergey ? А я вас не узнал без санитара...

10 янв 04 года ты писал(а) к мне:

[...skipped...]

SM> Во-вторых, имелась в виду конвертация во что-то читабельное, например,
SM> так:

SM> Private Function BinToHex(b() As Byte) As String
SM> Dim i As Long, lb As Long, ub As Long, h As String
SM> lb = LBound(b)
SM> ub = UBound(b)
SM> BinToHex = String$((ub - lb + 1&) * 2&, "0")
SM> For i = lb To ub
SM> h = Hex$(b(i))
SM> Mid$(BinToHex, (i - lb) * 2& + 3& - Len(h), Len(h)) = h
SM> Next
SM> End Function

Спасибо! Получилось!
Фотографии большими не будут так что этот способ вполне сойдет.
Теперь как обратно в бинарный вид корректно преобразовывать при извлечении?

SM> Почитал, что люди пишут о SQLLite. Действительно, способа хранения
[...skipped...]

SM> переваривает только символ с кодом 0, остальные непечатные символы
SM> вполне допустимы, например, заменить все VbNullChar (их, скорее всего,
SM> будет много) на "0", все "0" - на "/0" а все "/" - на "//".

Это еще что! Все данные помещаются и извлекаются с помошью SQL-запросов, в которых знака апострофа быть не может (SQL думает, что это край вводимого значения). В базе содержатся тексты на украинском и анклийском языках, где вместо апострофа я обхожусь символом "`".

I'll be back, Sergey !
www.caligari.zp.ua - реальная психологическая и психиатрическая помощь. Анонимно. Пока бесплатно.

* Origin: Иисус изменил вашу жизнь. Сохранить? [Y/N] (2:4641/500.99)


Идя навстречу пожеланиям пользователей моего софта

||*()*|| Ах это вы, A ? А я вас не узнал без санитара...

10 янв 04 года A писал(а) к мне:

[...skipped...]

AB>> Может подскажешь как через API обратиться примерчиком?
AS> CoCreateInstance
AS> Пример использования:
AS> http://vbrussian.com/download.asp?Type=Control&ID=98

Брррр... По этой ссылке CustEnumASM.rar выкачивается в примерах и исходниках которого я этой функции не нашел. По остальным контролам выложенным там полазил - тоже ничего подходящего не нашел.


I'll be back, A. !
www.caligari.zp.ua - реальная психологическая и психиатрическая помощь. Анонимно. Пока бесплатно.

* Origin: Иисус изменил вашу жизнь. Сохранить? [Y/N] (2:4641/500.99)


Re: Typeless data

From: "Sergey Merzlikin"

>
> Спасибо! Получилось!
> Фотографии большими не будут так что этот способ вполне сойдет.
> Теперь как обратно в бинарный вид корректно преобразовывать при
> извлечении?

Обратным способом :-)

Полученная строка разбивается на подстроки по 2 символа, дальше так:
b(i)=cbyte("&h" & s), где b - байтовый массив, а s - соответствующая
двухсимвольная подстрока. Естественно, массиву надо заранее сделать ReDim,
вычислив необходимый размер из длины строки.
После заполнения массива его можно присвоить свойству PB.Contents.

>
> SM> будет много) на "0", все "0" - на "/0" а все "/" - на "//".
>
> Это еще что! Все данные помещаются и извлекаются с помошью
> SQL-запросов, в которых знака апострофа быть не может (SQL думает, что это
край
> вводимого значения). В базе содержатся тексты на украинском и анклийском
> языках, где вместо апострофа я обхожусь символом "`".

Hичего особенного. Все работающие с HTML/XML страдают тем же недугом.
Лечится тем же способом - заменой. Я советую попробовать этот способ и для
картинок тоже. При помощи функции Replace это делается очень просто, и
обратное преобразование тоже намного проще и быстрее. Можно обойтись всего
двумя функциями - StrConv и Replace, причем без циклов.

--
Сергей Мерзликин
www.smsoft.ru/ru/


* Origin: Sovintel (2:5020/400)


Re: Visual Basic для детей.

From: "Sergey Broudkov"

Hello, A.!
You wrote to Serge Chervjakov on Sat, 10 Jan 2004 14:38:42 +0000 (UTC):

AS> "А на каком языке вы пишете программы? - Hа родном, на грузинском!" (с)
AS> анекдот 15-летней давности

Реальный случай 25-летней давности: "А на чем у тебя программа написана?" -
"Да вот, на бумажке" :)

--
Regards,
Sergey Broudkov
sbpro [@] geocities.com
ICQ #4841919
А может, в реестре чего подправить? d;--D

* Origin: Demos online service (2:5020/400)


Entry Point

Пpивет All

Hе подкинет ли всезнающий All функцию на эхотаге для
чтения и изменения сабжа в EXE файлах пpогpамм.

Кстати не знает ли кто способ пеpевода HEX смещения в пpогpамме
в машинный код (чтобы пеpевести напpимеp "12FF76" в HEX'ах
в "jmp 12FF76" в машинных кодах и наобоpот.

Очень нужно - пишу защиту EXE файлов на эхотаге.

Заpанее всем откликнувшимся огpомное спасибо.

GPcH Soft ( gpch.narod.ru )


С уважением, Сеpгей

* Origin: Гpоша выеденного не стоит. (2:5022/63.30)

SUBJ: Re: .h -> .bas конвертор
Re: .h -> .bas конвертор

Мы где-то виделись, A.?

10 Jan 04 17:39:36 в RU.VISUAL.BASIC A. Skrobov -> All:

AS> Существует ли сабж? Как-то же получили файл WIN32API.TXT

По-моему, был использован какой-то самописный инструмент. Иначе откуда там
столько ошибок?

Всего хорошего!
Дмитрий Козырев aka Master

* Origin: Дорогу осилит идущий. (2:5023/11.148)



Назад Содержание Вперед




Главная     Программы     Статьи     Разное     Форум     Контакты