chciałbym nazwać własną funkcję dll C++ z Excel VBA:Czy można przekazać odwołanie do wskaźnika z Excela VBA do C++?
void my_cpp_fun (int& n_size, double*& my_array);
Funkcja C++ tworzy my_array tablicy o zmiennej wielkości n_size (ta wielkość jest obliczany my_cpp_fun).
Czy mogę połączyć tę funkcję tak, jak ma to miejsce z VBA, bez używania jakichkolwiek elementów specyficznych dla programu Excel w moim kodzie C++?
Więc w zasadzie to, co szukam jest VBA stwierdzenie oświadczenie jak
Declare Sub my_cpp_fun Lib "my_cpp.dll" (n_size As Long, Ref_to_Ptr_Qualifier my_array As Double)
Dodatkowym problemem, który właśnie wystąpił do mnie: Gdybym przydzielić pamięci wewnątrz C++ DLL przy użyciu nowego, będzie, że pamięć jest dostępna raz funkcja dll zwraca kontrolę do VB? Jeśli tak nie jest, to powyższe nie ma sensu ...
Więc to nie jest możliwe bez korzystania z interfejsu API programu Excel? Myślałam o coś prostego jak Declare Sub my_cpp_fun Lib „my_cpp.dll” (n_size As Long, Magic_Ref_to_ptr_qualifier my_array jako podwójne) – Hans
Jest to możliwe, ale jest droga więcej kłopotu niż jego wartość. O wiele łatwiej jest mieć dll COM owinąć twój surowy dll, gdy współpracujesz z VB. –
Nie, Deklaracja jest łatwiejsza niż COM, jeśli powierzchnia interfejsu jest mała. COM to królewski ból z tyłu, zwłaszcza z C++. –