Register a dll, why and when?

S

Sven Pran

I have an appcation that includes a dll I have written and which is of
interest to other application makers.

One of them has written an MS Access database application using VBA, he
wants to use my dll and approached me telling me that he could not
"register" this dll so he could not call it from his application.

I do not know anything about registering dll modules, my installation
program (INNO) simply installs them to the windows\system folder and that's
it. (I have wondered whether to install to \system or to \system32, but as
long as \system works I'm happy about using that)

Can someone enlighten me on what this is all about?

BTW. My application is written entirely in Delphi and all my dll functions
use standard linkage, exactly the same as is used for Windows API functions.

grateful for any information.

regards Sven
 
M

meerkat

Sven Pran said:
I have an appcation that includes a dll I have written and which is of
interest to other application makers.

One of them has written an MS Access database application using VBA, he
wants to use my dll and approached me telling me that he could not
"register" this dll so he could not call it from his application.

I do not know anything about registering dll modules, my installation
program (INNO) simply installs them to the windows\system folder and
that's it. (I have wondered whether to install to \system or to \system32,
but as long as \system works I'm happy about using that)

Can someone enlighten me on what this is all about?

BTW. My application is written entirely in Delphi and all my dll functions
use standard linkage, exactly the same as is used for Windows API
functions.

grateful for any information.
Hi Sven, go here and read about regsvr32.
It`s what you can use to register/unregister a dll.

http://support.microsoft.com/kb/249873
 
M

Mr. Arnold

Sven Pran said:
I have an appcation that includes a dll I have written and which is of
interest to other application makers.

One of them has written an MS Access database application using VBA, he
wants to use my dll and approached me telling me that he could not
"register" this dll so he could not call it from his application.

I do not know anything about registering dll modules, my installation
program (INNO) simply installs them to the windows\system folder and
that's it. (I have wondered whether to install to \system or to \system32,
but as long as \system works I'm happy about using that)



#1 -- You're posting to the wrong NG. You should be posting to a MS
programmer's NG about something like this.

#2 -- You should not be installing DLL(s) in the System32 directory that's
basically reserved for O/S DLL(s) or DLL(s) that can be used across
applications (common DLL(s)) that can be used by more than one program or
application.

#3 -- You should place DLL(s) such as the one you're talking about in the
directory where the executable resides and register the DLL from that
location.
 
C

Chirag

Hi Sven,

Most probably you are developing a DLL that exports the functions API
directly as Windows does. You can provide them with the function signatures
that they can use to directly call the DLL functions. The registering thing
is required for DLLs that host ActiveX objects and Automation interfaces. It
seems your application developer is trying to use your DLL as if it has
ActiveX objects in it. You need to tell them that your DLL is not hosting
ActiveX objects unless you are actually creating ActiveX library.

- Chirag

PowerShow - View multiple PowerPoint slide shows simultaneously
http://officeone.mvps.org/powershow/powershow.html
 
T

Tim Slattery

Sven Pran said:
I have an appcation that includes a dll I have written and which is of
interest to other application makers.

One of them has written an MS Access database application using VBA, he
wants to use my dll and approached me telling me that he could not
"register" this dll so he could not call it from his application.

I do not know anything about registering dll modules, my installation
program (INNO) simply installs them to the windows\system folder and that's
it. (I have wondered whether to install to \system or to \system32, but as
long as \system works I'm happy about using that)

Not all DLLs need to be registered. "Extension" DLLs contain a
collection of functions that are made available to other programs to
be used. This type of DLL usually comes with a header file and
documentation describing the interfaces to all the member functions.
When the application calls for the library to be loaded, the OS looks
for it in a specific set of places (current directory, \Windows,
\Windows\System32, etc).

Active X DLLs (or COM DLLs), on the other hand, have two (IIRC)
well-defined functions that calling programs use to find out what
other functions are available within the library, and what the calling
sequence for each function is. These libraries need to be registered,
because calling programs will look them up by name in the registry,
and find their exact address there.

People in programming groups (microsoft.public.vc.*) would probably
know this subject in much greater detail than the folks that hang out
here.
 
S

Sven Pran

Chirag said:
Hi Sven,

Most probably you are developing a DLL that exports the functions API
directly as Windows does.

That is a very precise description of my dll
You can provide them with the function signatures that they can use to
directly call the DLL functions.

I have done that
The registering thing is required for DLLs that host ActiveX objects and
Automation interfaces. It seems your application developer is trying to
use your DLL as if it has ActiveX objects in it. You need to tell them
that your DLL is not hosting ActiveX objects unless you are actually
creating ActiveX library.

Right.

and thanks, Sven
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top