Writing an External Procedure
Using a third-generation programming language, you can write functions to be built into DLLs and started by EXTPROC.
The following is a simple Microsoft Visual C++ example of an external procedure called FIND_MAX:
Note:
Because external procedures are built into DLLs, they must be explicitly exported. In this example, the DLLEXPORT storage class modifier exports the function FIND_MAX from a dynamic link library.
#include <windows.h>
#define NullValue -1
/*
This function tests if x is at least as big as y.
*/
long __declspec(dllexport) find_max(long x,
short x_indicator,
long y,
short y_indicator,
short *ret_indicator)
{
/* It can be tricky to debug DLL's that are being called by a process
that is spawned only when needed, as in this case.
Therefore try using the DebugBreak(); command.
This starts your debugger. Uncomment the line with DebugBreak();
in it and you can step right into your code.
*/
/* DebugBreak(); */
/* First check to see if you have any nulls. */
/* Just return a null if either x or y is null. */
if ( x_indicator==NullValue || y_indicator==NullValue) {
*ret_indicator = NullValue;
return(0);
} else {
*ret_indicator = 0; /* Signify that return value is not null. */
if (x >= y) return x;
else return y;
}
}Parent topic: About Building External Procedures