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;
};