Making and using a DLL consists of three major steps
Let us consider a simple C program
vecsum.c
which sums up a vector:
#include "dll.h" EXTERN int EXPORT sum (double *x, double *n, double *s) { long i, nn = (long) *n; *s=0.0; for (i=0; i<nn; i++) *s = *s + *(x+i); return (0); }
Note that the include file dll.h
defines the
symbols EXTERN
and EXPORT
in a proper way for the
below mentioned compiler.
As a first step we create a project called vecsum.ide
to generate a Windows DLL:
File/New/Project
ProjectPath
to C:\vecsum\vecsum.ide
Target Type
the second item Dynamic Library
[.dll]
Libraries:
the radio button from Dynamic
to Static
Frameworks:
the check boxes OWL
and then Class Library
OK
Project Window
the files vecsum.rc
and vecsum.def
The second step consists of generating the code and compiling it:
Project window
you get the context menu of vecsum.cpp
with right mouse button and choose View/Text Edit
C:\vecsum
File/Save
Project/Build all
To use the DLL in XploRe requires the following simple steps.
x
and initialize the result s
x=1:10 s=0
h=
dlopen
("vecsum.dll")
Note that XploRe needs to be able to find this library. From
XploRe you can set the path for DLLs by
setenv
("xpl4dll","/your_absolute_path_to_the_dll")
Alternatively you can give the absolute path within the
dlopen command.
sum
from the DLL for x
dlcall
("_sum",x, rows(x),s)
As a result you should find s
having the value 55 which
is the sum for the numbers 1 to 10.