Re: Difference between NEW and CREATEOBJECT?

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Mark (no_at_email.com)
Date: 02/19/04


Date: Thu, 19 Feb 2004 13:07:28 +0100

Thanks for the detailed answer
I will then use new as often as i can

Regards
Mark

"Bob Phillips" <bob.phillips@notheretiscali.co.uk> wrote in message
news:%23F6$pit9DHA.1948@TK2MSFTNGP12.phx.gbl...
> Mark,
> New uses early binding. When you declare something As the particular
object
> type, and use the New keyword, you are telling the compiler to go through
> the specific library interface to that object. Because you've referenced
> this in the VBA Tools>References settings, the compiler can read the
typelib
> file, and knows how to "talk" to that object. Because this is done at
> compile time, not run time, execution is much faster.
>
> CreateObject uses late-binding. When you declare something As Object and
use
> CreateObject, VBA has no idea what object you're dealing with. Thus, the
> compiler has to go through the IUnknown interface. This returns an array
of
> pointers to all the other interfaces supported by the object. Once those
> interface pointers are known, VBA then goes through IDispatch to determine
> the specific property or method to actually call .All of this takes a
great
> deal of system overhead and can make your code execute substantially
slower.
>
> In Summary, New is quicker, and provides IntelliSense when developing, but
> requires the type library to be linked.joined/referenced (whatever you
want
> to call it) to your project. CreateObject is slower, requires more on the
> developer's part (you need to know library constant values for instance),
> but can be more flexible, especially when distributing to multiple
platforms
> where there may be different versions of the library.
>
> --
>
> HTH
>
> Bob Phillips
> ... looking out across Poole Harbour to the Purbecks
> (remove nothere from the email address if mailing direct)
>
> "Mark" <no@email.com> wrote in message
> news:c122hd$8oq$1@news.net.uni-c.dk...
> > Hi NG
> >
> > Just a newbie question.
> >
> > What is the difference between NEW and CREATEOBJCT ?
> >
> > The following two lines of code seems to do the same!
> >
> > Set xmlStr = CreateObject("Microsoft.XMLDOM")
> > Set xmlStr = New DOMDocument
> >
> > Is there any performance issues in using the one instead of the other?
> >
> > Regards
> > Mark
> >
> >
>
>



Relevant Pages

  • Re: Difference between NEW and CREATEOBJECT?
    ... Of course the reason to use late binding in a distributed file is to avoid ... "Mark" wrote in message ... >> this in the VBA Tools>References settings, the compiler can read the ... >> compiler has to go through the IUnknown interface. ...
    (microsoft.public.excel.programming)
  • Re: problematic array assignment in double precision (ifort, windows)
    ... Caution on confusing terminology here. ... the compiler could not know about the argument type. ... the procedure is in this module, then you do *NOT* also put an interface ... To declare something about the function, you actualy have to declare it ...
    (comp.lang.fortran)
  • Re: problematic array assignment in double precision (ifort, windows)
    ... Caution on confusing terminology here. ... the compiler could not know about the argument type. ... the procedure is in this module, then you do *NOT* also put an interface ... To declare something about the function, you actualy have to declare it ...
    (comp.lang.fortran)
  • Re: Difference between NEW and CREATEOBJECT?
    ... When you declare something As the particular object ... this in the VBA Tools>References settings, the compiler can read the typelib ... CreateObject, VBA has no idea what object you're dealing with. ... compiler has to go through the IUnknown interface. ...
    (microsoft.public.excel.programming)
  • Re: MFC and c++ problems
    ... compiler to generate code that is architecturally nonsensical. ... So a design in which a control has any syntactic knowledge of any container of itself ... GetParent->SendMessage is the interface of choice, ...
    (microsoft.public.vc.mfc)