There are two basic types of procedures in a DLL:
private and exported. Exported
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
Creating a Dynamic Link Library