Newsgroup: it.comp.lang.vo-clipper
Titolo: Libreria esterna

Boun giorno a tutti, scusate se riposto il messaggio ma non mi funziona 
bene il server di posa e non so se è arrivato il mio precedente.
Stò utilizzando VO 2.6, e avrei la necessità di utilizzare una libreria 
spcialistica per calcoli finanziari che può essere usata in C, C++, VB, etc.
Come posso fare per utilizzarla da VO?
Ho fatto qualche ricerca ma non riesco a capire che strada mi conviene 
utilizzare.
Grazie a tutti in anticipo.
Un saluto.
Luca B

 ha scritto nel messaggio
news:coekh6$1rus$1...@newsreader1.mclink.it...


 
Grazie della risposta, ma le funzioni sono molto complesse, e come 
riferimento ho solo un file include per C/C++ dove crea una variabile 
polimorfica e non riesco ad utilizzare le funzioni. Le funzioni le 
richiamo da programma e non mi dà errore, ma non restituisce quello che 
penso io.
Ecco la parte iniziale dell'include in C ma di cui io non ci capisco un 
tubo, penso che questa parte andrebbe riscritta per farla capire a VO:
#ifndef FC_H
#define FC_H
/* ------------------------------------------------------------------------
*
*  FC.H -- FinancialCAD API for C
*  10-Nov-2004  v 8.0
*
*  Copyright (C) 2004, 2005 FinancialCAD Corp.
*
*  This file contains:
*    - Definition of XLOPER data structure
*    - FinancialCAD function names
*    - FinancialCAD function prototypes
*
*  You have a right to use this file according to
*  the licensing agreement with FinancialCAD Corp.
*
*  Note: For Borland C/C++ users
*        Add the statement below when using 1 byte data structure alignment
*  #pragma pack(8)
*------------------------------------------------------------------------*/
/* xloper - polymorphic data structure */
typedef struct xloper
   {
    union
    {
     double num;
     LPSTR str;
     WORD bool1;
     WORD err;
     struct
       {
       struct xloper far * lparray;
       WORD rows;
       WORD columns;
       } array;
    } val;
    WORD xltype;
   } XLOPER, FAR * LPXLOPER;
/*Define constants for XLOPER */
#define FCtypeNum      0x0001    /* numeric value */
#define FCtypeStr      0x0002    /* byte counted string (not used in dll) */
#define FCtypeBool     0x0004    /* logical value (TRUE or FALSE) (not 
used in dll) */
#define FCtypeErr      0x0010    /* error value */
#define FCtypeMulti    0x0040    /* array */
#define FCtypeNil      0x0100    /* empty cell reference */
#define FCbitDLLFree   0x4000    // memory deallocation flag
/*Note
* The 'xltype' flag member of the returned value or object
* of a function call may have had the 'bitwise or' operation
* applied with the flag xlbitDLLFree( 0x4000 ). Using the %
* operator with the type flag will filter out this information
* so that you can examine the return code by itself.
* For example ((returnval->xltype%xlbitDLLFree)==16) will
* check for an error code and ignore the xlbitDLLFree
* if it is present. */
/* When using C++, extern "C" must be used when calling a C function */
/* from a C++ program. Using extern "C"  forces the use of the C naming */
/* convention. */
#if defined(__cplusplus)
   #define DllImport extern "C" _declspec( dllimport )
#else
   #define DllImport
#endif
/*FinCAD function name                     dll name 
              source dll */
#define aaErrorHandlingEnable              aaErrorHandlingEnable_dll 
               /*FCA.DLL*/
[................]
DllImport void far pascal aaGlobalFreeAllA(void);
DllImport void far pascal aaGlobalFreeAllOld(void);
DllImport int far pascal aaErrorHandlingEnable(int ErrorLevel);
DllImport int far pascal aaIsErrorHandlingEnabled();
DllImport LPXLOPER far pascal aaAccrual_days(double d_e, double d_t, int 
acc);
DllImport LPXLOPER far pascal aaAccrual_factor(double d_e, double d_t, 
int acc);
DllImport LPXLOPER far pascal aaAccrued(double princ_m, double cpn, int 
freq, double d_n_cf, double d_v, double d_prev_cf, int acc);
DllImport LPXLOPER far pascal aaAMB(double princ_m, double princ_v, 
double cpn, double d_m, double d_v, double yield, int freq, int d_rul,
                LPXLOPER stat, LPXLOPER hl, int acc);
[................]
/* FinCAD function name versus internal function name used in dll */
static struct name_table
   {
   char FC_name[50];
   char dll_name[50];
   char dll[11];
   } NAME_TAB[] = {
   "aaAccrual_days",                      "aaAcc_Days_dll", 
                 "FCA.DLL",
   "aaAccrual_factor",                    "aaAcc_Factor_dll", 
                 "FCA.DLL",
   "aaAccrued",                           "aaAccrued_dll", 
                 "FCA.DLL",
[................]
   "eol", "eol", "eol"
};
#endif