Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    DEV C++ >> DLL >> VBA : help con Range

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

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Assolutamente fuori regolamento (sarà periodo ma ogni giorni ci sono mille violazioni, sarà o no difficile leggere sto benedetto regolamento??)

    Cmq per quale motivo usare una dll fatta in c++ per fare un'operazione che consiste in un ciclo for?

  3. #3
    Dal tuo commento sul ciclo for mi sembra che non hai letto bene il post e soprattutto che forse semplicemente non lo sai fare...

    Se almeno mi spiegassi in cosa il mio post è fuori regolamento daresti un contributo utile al forum!!!

    CIAO CIAO

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Originariamente inviato da romaniev
    Dal tuo commento sul ciclo for mi sembra ...
    A me sembra che lui si riferisse, a ragione, a questo ciclo

    codice:
    for (int t=0; t < cflow_times.size(); t++){
    e che quindi ti dicesse che per fare quel ciclo non c'e' bisogno del C ...

    Se almeno mi spiegassi in cosa il mio post è fuori regolamento daresti un contributo utile al forum!!!
    Basterebbe che tu leggessi il regolamento per capirlo ...

    In ogni caso, ti posso dire che non usare i tag CODE per il codice, e' gia' qualcosa che rende difficoltoso aiutarti ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.