me gustaría llamar a mi propia función DLL C++ desde Excel VBA:¿Es posible pasar una referencia a un puntero desde Excel VBA a C++?
void my_cpp_fun (int& n_size, double*& my_array);
La función de C++ crea una serie de my_array n_size tamaño variable (este tamaño se calcula dentro my_cpp_fun).
¿Puedo interactuar esta función tal como está con VBA sin usar ningún elemento específico de Excel en mi código C++?
Así que básicamente lo que estoy buscando es una VBA DECLARE como
Declare Sub my_cpp_fun Lib "my_cpp.dll" (n_size As Long, Ref_to_Ptr_Qualifier my_array As Double)
Un problema adicional que simplemente se me ocurrió: Si asignar memoria dentro de la DLL de C++ utilizando nueva, estará disponible que la memoria una vez la función dll devuelve el control a VB? Si ese no es el caso, lo anterior no tiene sentido ...
lo que no es posible sin el uso de la API de Excel? Estaba pensando en algo tan sencillo como Declarar Sub my_cpp_fun Lib "my_cpp.dll" (n_size As Long, my_array Magic_Ref_to_ptr_qualifier As Double) – Hans
Es posible, pero es camino más problemas de los que merece la pena para ir por esa ruta. Es mucho más fácil tener un dll COM para envolver su dll sin procesar al interactuar con VB. –
No, declarar es más fácil que COM si la superficie de la interfaz es pequeña. COM es un dolor real en la parte trasera, especialmente de C++. –