У Вас есть примеры, пытаются выйти за границы возможного, программируя использование VB6?

Хорошо это работает здесь:

<html>
    <head>
        <style type="text/css">
            span.button {
                background: #eee;
                border: 1px solid #ccc;
            }

            span.button input {
                background:none;
                border:0;
                margin:0;
                padding:0;
            }   
        </style>
    </head>
    <body>
        <span class="button"><input type="button" name="..." value="Button"/></span>
    </body>
</html>
5
задан MarkJ 1 October 2009 в 16:48
поделиться

7 ответов

Joel said some good stuff about VB6 back in 2001.

Many VB6 programs are spaghetti, either because they're done as quick and dirty one-offs, or because they're written by hack programmers without training in object oriented programming, or even structured programming.

What I wondered was, what happens if you take top-notch C++ programmers who dream in pointers, and let them code in VB6. What I discovered at Fog Creek was that they become super-efficient кодирующие машины. Код выглядит красиво хорошо, объектно-ориентированный и надежный, но вы не тратите время на использование инструментов которые на уровне ниже, чем ты необходимость. Я годами писал код для C ++ / MFC и годы написания кода на Visual Basic, и позвольте мне сказать вам, VB6 просто намного, намного продуктивнее ...

Одна из особенностей Visual Basic 6 в том, что это не всегда дает вам доступ к полному репертуару Полезности Windows, которые нужно сделать отполированное приложение. Но что это делает лучше, чем любой другой среда программирования, позволяет перейти в код C ++ (или вызвать C API) когда ты в отчаянии или когда тебе нужно that extra speed.

That was written in 2001: when creating a new Windows program today, IMHO the obvious choice for best productivity is VB.Net or C#. (JOKE: C# is just Visual Basic with semicolons.)

Getting back to VB6: there are many good examples of how to call C APIs to do something special or just to run faster. Here's some of my favourite links:

5
ответ дан 18 December 2019 в 07:30
поделиться

Одна неприятная уловка заключалась в злоупотреблении CallWindowProc для вызова произвольного кода путем передачи на него указателя. Это технически нарушает контракт этой функции, так как она должна использоваться только с дескрипторами (а не с указателями прямого кода), полученными через GetWindowLong ; но на практике так мало людей знают об этом, что реализация вынуждена допускать произвольные указатели кода. Это позволяет вызывать любой указатель на функцию, если он stdcall , и принимает 4 аргумента того же размера, что и аргументы WndProc .

Еще один неприятный трюк, который является следствием вышесказанное заключается в том, что вы можете динамически генерировать код таким образом - просто вставьте его в массив байтов и используйте CallWindowProc , чтобы перейти к нему. Таким образом, вы можете встроить собственный код, не созданный на основе VB6, в приложение VB6 без каких-либо внешних DLL. Конечно, в наше время, когда бит NX включен по умолчанию, это, вероятно, уже не такая уж хорошая идея (если она вообще когда-либо была) ...

6
ответ дан 18 December 2019 в 07:30
поделиться

Я не уверен, что он кладет в свои бутерброды, но почти все, что можно найти в Расширенный Visual Basic 6 Мэтью Керленда , - это использование VB6 в программировании «толкни границы». Действительно отличный материал.

4
ответ дан 18 December 2019 в 07:30
поделиться

Не могу оставить этот вопрос без ответа, в котором упоминается Hardcore Visual Basic Брюса МакКинни, который теперь (замечательно) доступен в Интернете:

http://vb.mvps.org/ hcvb.asp

Это отличное чтение от автора, который явно любит дух Basic.

3
ответ дан 18 December 2019 в 07:30
поделиться
1
ответ дан 18 December 2019 в 07:30
поделиться

Понимание того, что большинство шаблонов проектирования «Банды четырех» полагаются на реализацию интерфейса, а не на наследование, и поэтому их можно легко использовать в Visual BASIC 6.

Возможность сделать это значительно улучшила дизайн моего приложения CAD / CAM.

2
ответ дан 18 December 2019 в 07:30
поделиться

Подклассы Пола Кэтона, продолжение ЛаВольпа ( http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=68737 ) позволяет делать все, что вам нужно, подключаясь к событиям Windows, без сбоев IDE. Благодаря этому вы можете реализовать в Windows все, что необходимо. В образцах есть безумные вещи, о которых вы, возможно, даже не думали.

0
ответ дан 18 December 2019 в 07:30
поделиться