Использование Printer.Print в VB6 - PullRequest
1 голос
/ 15 января 2012

Я пришел из Java и .NET фона.

В VB6 кажется, что вам не всегда нужно создавать экземпляр класса при его использовании. Например, при использовании класса «Принтер» вы можете просто сказать «Printer.print» вместо того, чтобы сначала создавать экземпляр, т. Е. Затемнять принтер как новый принтер, а затем запускать printer.Print. Я знаю, что Printer - это системный объект в VB6, но почему бы вам не создать экземпляр?

Ответы [ 2 ]

5 голосов
/ 15 января 2012

Visual Basic традиционно имел большое количество предопределенных идентификаторов, которые непосредственно распознаются компилятором. Объект Printer является одним из таких. Под капотом это реализовано с атрибутом [appobject] , но это тщательно скрыто в языке. Среда выполнения автоматически создает экземпляр COM-класса COM, подобно синтаксису As New. Объект DAO DBEngine будет примером объекта, который не предопределен в синтаксическом анализаторе языка.

Это завершено в VB.NET, действительно объектно-ориентированном языке с большой библиотекой классов, во многом похожей на Java. Больше нет объекта Printer, вы должны использовать класс PrintDocument. Объект Printer по-прежнему поддерживается для устаревшего кода, доступного в пространстве имен Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6. Однако для его создания требуется ключевое слово New .

Будьте осторожны, вкладывая много времени и энергии в VB6, это во всех отношениях сильно устаревший язык.

0 голосов
/ 15 января 2012

VB6 не является объектно-ориентированным языком так же, как вы ожидаете, если вы привыкли к новым языкам. VB6 будет выполнять неявную реализацию, и вы можете рассматривать определенные вещи, как если бы они были статичными. Например, вы можете объявить переменную формы, но это не обязательно. Вы можете напрямую вызывать форму и манипулировать ею, не объявляя ее. В случае с принтером он не может быть явно объявлен и создан, но в VB6 он уже есть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...