Specifying the External Pathway Function

The primary inputs for an External pathway are the specification of the DLL and Function which will be used by the External pathway:

DLL Path:  This is the name of the dynamic link library containing the External pathway function.  In general, you must specify the full path to the DLL.  (If you specify just the filename, it will look for the DLL only in the working directory containing the GoldSim executable). Note that a single DLL can contain multiple External pathway functions.  You can use the Browse button (the folder to the right of the input field) to search for a file.

Function Name:  This is the specific name of the External pathway function in the DLL. This name is case-sensitive and must exactly match the name of the function in the source code for the External pathway function.

There are also several options that control how the DLL is called by GoldSim:

Run Cleanup after each realization: If this box is checked, GoldSim will call the DLL with a cleanup instruction (99) at the end of each realization.  (See Appendix C of the GoldSim User’s Guide.)

Lock onto this file:  If this box is checked, GoldSim regards various properties of the file (including and alphanumeric code the can be used to determine whether the file contents have changed.

Run in separate process: If this box is checked, GoldSim executes the DLL outside of the GoldSim process space.  This can be useful for DLLs that have large memory requirements.

   Note: You can use GoldSim's File element to automatically copy the DLL file from some location (typically on a network) to your machine.  Because GoldSim records this action in the Run Log, it can provide an "audit trail" to ensure that the proper version of an external file (such as a DLL) was used in a particular simulation. 

If you check the Record CPU times in the run log box, if the element uses more than 1 CPU seconds, a message will be written to the GoldSim run log identifying the element’s name, type (i.e., External Pathway), the number of times it was updated, and the total CPU time used.

Related Topics…

Learn more about: