General information
Title:
Please. Help call me call OCI in Foxpro...a DLL Question...
How can I make a C call like:
(void) OCIInitialize (OCI_THREADED | OCI_OBJECT, (dvoid *)0,
mymalloc, myrealloc, myfree);
I am trying to run a dll in foxpro but I am not very good at
this.
I tried ...
#define SX_ORACLE
#define SX
#define ORATYPES
#define ub4 int
#define TRUE 1
#define FALSE 0
DECLARE INTEGER OCIInitialize IN Ociw32.dll as OCIInitialize
I have no idea..!!!!
Any hints!!!!
From VFP where: OCIIntialize is:
sword OCIInitialize ( ub4 mode,
CONST dvoid *ctxp,
CONST dvoid *(*malocfp)
(/* dvoid *ctxp,
size_t size _*/),
CONST dvoid *(*ralocfp)
(/*_ dvoid *ctxp,
dvoid *memptr,
size_t newsize _*/),
CONST void (*mfreefp)
(/*_ dvoid *ctxp,
dvoid *memptr _*/));
Notes: From the .h file
typedef unsigned int ub4;
#ifdef lint
# define dvoid void
#else
Further more here is more info on the call..
Parameters
mode (IN)
Specifies initialization of the mode. The valid modes are:
OCI_DEFAULT - default mode.
OCI_THREADED - threaded environment. In this mode, internal data structures not exposed to the user
are protected from concurrent accesses by multiple threads.
OCI_OBJECT - will use object features. ctxp (IN)
User defined context for the memory call back routines.
malocfp (IN)
User-defined memory allocation function. If mode is OCI_THREADED, this memory allocation routine must
be thread safe.
ctxp (IN/OUT)
Context pointer for the user-defined memory allocation function.
size (IN)
Size of memory to be allocated by the user-defined memory allocation function
ralocfp (IN)
User-defined memory re-allocation function. If mode is OCI_THREADED, this memory allocation routine
must be thread safe.
ctxp (IN/OUT)
Context pointer for the user-defined memory reallocation function.
memptr (IN/OUT)
Pointer to memory block
newsize (IN)
New size of memory to be allocated
mfreefp (IN)
User-defined memory free function. If mode is OCI_THREADED, this memory free routine must be thread
safe.
ctxp (IN/OUT)
Context pointer for the user-defined memory free function.
memptr (IN/OUT)
Pointer to memory to be freed
Comments
This call initializes the OCI process environment.
OCIInitialize() must be invoked before any other OCI call.
This function provides the ability for the application to define its own memory management functions through
callbacks. If the application has defined such functions (i.e., memory allocation, memory re-allocation, memory
free), they should be registered using the callback parameters in this function.
These memory callbacks are optional. If the application passes NULL values for the memory callbacks in this
function, the default process memory allocation mechanism is used.
Example
The following statement shows an example of how to call OCIInitialize() in both threaded and object mode,
with no user-defined memory functions:
OCIInitialize((ub4) OCI_THREADED | OCI_OBJECT, (dvoid *)0,
(dvoid * (*)()) 0, (dvoid * (*)()) 0, (void (*)()) 0 );
Next
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only