Ciao a tutti,

non sono un esperto di C++ ma sono riuscito a creare una dll con il codice che vi allego.

La funzione ha 3 parametri di input: 2 vettori + 1 numero.

Se su excel dichiaro:

Declare Function cf_pv_discrete Lib "C:\Dev-Cpp\SVILUPPO\nome_dll.dll" (ByVal cflow_times As Double, ByVal cflow_amounts As Double, ByVal r As Double) As Double

Mi restituisce #VALUE

Secondo me è perché la dll ha come parametro un vector<double> mentre su excel io gli passo un range...

Sapete come si fa a passare una selezione di celle di excel ad una DDL? Come devo scrivere in C++ i parametri di input?


Grazie a tutti
Ciao
Vito
------------------------------------------ codice per dll ----------------------

#include <cmath>
#include <vector>
using namespace std;
#include <windows.h>

WINAPI BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
{
return TRUE;
}


extern "C" __declspec(dllexport) WINAPI double cf_pv_discrete(const vector<double>& cflow_times, const vector<double>& cflow_amounts, const double& r){
double PV = 0.0;
for (int t=0; t < cflow_times.size(); t++){
PV =+ cflow_amounts[t]/pow(1.0+r,cflow_times[t]);
};
return PV;
};