Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
avi avi is offline
external usenet poster
 
Posts: 195
Default DLL Vs. EXE?

Hello,

What are the main differences between an EXE or DLL written in Vb6 and
what considerations for choosing one of them when writting a piece of
code to be used with VBA?

Thanks
Avi

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default DLL Vs. EXE?

An EXE is a stand-alone application, typically started from a Windows icon
though not necessarily. It might, for example, start a new Excel instance,
process a whole bunch of data obtained from elsewhere, dump the results into
a new workbook, save & goodbye. It may or may not have a Form as a user
interface. Whilst it could interact with VBA in a workbook I kind of doubt
that's what you want to do.

A VB(6) ActiveX DLL is activated via a Public (entry) class, two types -

MultiUse: This can be instanciated from VBA with 'New' (early binding with a
reference to the dll in Tools references) or with createObject (early or
late binding). Once the entry class is running the VB & VBA can act as a
single application shaking hands between the entry class.

GlobalMultiUse: you can call its public methods & properties directly
without doing as described above.

A VB Com-addin is also an ActiveX dll which has a special class. Typically
this is instanciated when Excel starts (according to settings). It has a
built in method to trap the click event of an Excel commandbar button and go
from there, it doesn't require any VBA.

If you want the VB to be controlled from your VBA the choice is clearly the
DLL (vs EXE).

I take it you didn't see the response I left to your earlier post.

Regards,
Peter T

"avi" wrote in message
s.com...
Hello,

What are the main differences between an EXE or DLL written in Vb6 and
what considerations for choosing one of them when writting a piece of
code to be used with VBA?

Thanks
Avi



  #3   Report Post  
Posted to microsoft.public.excel.programming
avi avi is offline
external usenet poster
 
Posts: 195
Default DLL Vs. EXE?

Helo Peter,

Thanks . I guess i'll opt for a dll as you suggested although i see(am
i wrong?) an advantage in the EXE approach: do not need to register
the DLL / I can put it as a part of the VBA code and call it with
Shell statement

Avi

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default DLL Vs. EXE?

an advantage in the EXE approach: do not need to register

If it's an ActiveX EXE you still need to register, but with /RegServer not
regsvr32 as you would with a dll.

If you use late binding, in your VBA code if you can't create your entry
class, trap the error and call a separate routine to register the dll (in
code with Shell and you would need to know it's path or ask user to find it
if necessary).

Have you actually tried your Shell to EXE approach, in addition to which
you'd might want to look into "Shell & Wait". How do you go on to interact
between your VBA and the EXE, can be done but more difficult & limited.

Guess it depends on what you are doing overall.

Regards,
Peter T


"avi" wrote in message
ups.com...
Helo Peter,

Thanks . I guess i'll opt for a dll as you suggested although i see(am
i wrong?) an advantage in the EXE approach: do not need to register
the DLL / I can put it as a part of the VBA code and call it with
Shell statement

Avi



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 108
Default DLL Vs. EXE?

Roedd <<avi wedi ysgrifennu:

Hello,

What are the main differences between an EXE or DLL written in Vb6 and
what considerations for choosing one of them when writting a piece of
code to be used with VBA?


OK, assuming you mean an ActiveX .exe, the advantage of this is that you can
have it independently threaded to your VBA. Just code some events to alert
your VBA when processes are finished, declare the instance of your .exe
withevents and you can have it go off and do lengthy stuff without any
danger of the user thinking that Excel has hung. The disadvantage is that
all of this takes place outside of the Excel process, which means that
communication between Excel and your .exe will be slow because it must be
marshalled through a narrow communication channel.

So, if you want to do a lot of interaction between your COM server and
Excel/VBA, use a dll.

HTH

Rob


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT +1. The time now is 11:46 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"