desidero chiamare il mio funzione dll C++ da Excel vba:È possibile passare un riferimento a un puntatore da Excel VBA a C++?
void my_cpp_fun (int& n_size, double*& my_array);
La funzione C++ crea un array di my_array n_size dimensioni variabili (questo formato calcolato all'interno my_cpp_fun).
Posso interfacciare questa funzione così come è per VBA senza utilizzare elementi specifici di Excel nel mio codice C++?
Quindi, in pratica quello che sto cercando è un VBA Declare dichiarazione come
Declare Sub my_cpp_fun Lib "my_cpp.dll" (n_size As Long, Ref_to_Ptr_Qualifier my_array As Double)
Un ulteriore problema che appena si è verificato a me: se io allocare la memoria all'interno del C++ dll utilizzando il nuovo, sarà che la memoria sia disponibile una volta la funzione dll restituisce il controllo a VB? Se questo non è il caso, quanto sopra è inutile ...
Quindi non è possibile senza utilizzare l'API di Excel? Stavo pensando a qualcosa di semplice come Declare Sub my_cpp_fun Lib "my_cpp.dll" (n_size As Long, Magic_Ref_to_ptr_qualifier my_array come doppio) – Hans
E 'possibile, ma è così più problemi del suo valore per percorrere quella strada. È molto più facile avere una dll COM avvolgere la tua dll raw quando si interfaccia con VB. –
No, Declare è più semplice di COM se l'area della superficie dell'interfaccia è piccola. COM è un dolore reale nella parte posteriore, specialmente da C++. –