Private and Exported Procedures   

There are two basic types of procedures in a DLL: private and exported.  Exported procedures are those which are made available to applications and other DLLs.  Private, or local, procedures are support-type routines, accessible only from within the DLL.

In the following example, the first procedure defines an exported Sub that accepts two arguments: a string and an Integer.  The second procedure defines an exported function that accepts a single string argument, and returns an Integer.  Finally, the third procedure defines a private Sub that accepts a single Integer argument.  The first two routines are callable from an external .EXE or another DLL.  The third one is not.

#COMPILE DLL

SUB MySub (sArg AS STRING, BYVAL iArg AS INTEGER) EXPORT

  ' Body goes in here

END SUB

FUNCTION MyFunc (sArg AS STRING) EXPORT AS INTEGER

  ' Body goes in here

END FUNCTION

SUB MyPrivateSub(BYVAL iArg AS INTEGER)

  ' Body goes in here

END SUB

Alternatively, you may specifically declare Subs and Functions as private, by using the PRIVATE keyword:

SUB MyPrivateSub(BYVAL iArg AS INTEGER) PRIVATE

  ' Body goes in here

END SUB

 

See Also

What is a Dll?

Creating a Dynamic Link Library

Dll example

LibMain