Ich mag würde meine eigene C++ DLL-Funktion aus Excel VBA nennen:Ist es möglich, einen Verweis auf einen Zeiger von Excel VBA nach C++ zu übergeben?
void my_cpp_fun (int& n_size, double*& my_array);
Die C++ Funktion erstellt ein Array my_array variabler Größe n_size (diese Größe innerhalb my_cpp_fun berechnet wird).
Kann ich diese Funktion mit VBA verbinden, ohne Excel-spezifische Daten in meinem C++ - Code zu verwenden?
Also im Grunde, was ich suche ist ein VBA-Anweisung deklarieren wie
Declare Sub my_cpp_fun Lib "my_cpp.dll" (n_size As Long, Ref_to_Ptr_Qualifier my_array As Double)
Ein zusätzliches Problem, das nur fiel mir ein: Wenn ich Speicher in der C++ dll mit neuen zuweisen, wird dieser Speicher einmal verfügbar sein Die DLL-Funktion gibt die Kontrolle an VB? Wenn das nicht der Fall ist, ist die oben sinnlos ...
So ist es nicht möglich, ohne den Excel-API zu verwenden? Ich war einfach wie an etwas gedacht Declare Sub my_cpp_fun Lib "my_cpp.dll" (n_size As Long, Magic_Ref_to_ptr_qualifier my_array As Double) – Hans
Es ist möglich, aber es ist Art und Weise mehr Mühe als es wert ist, diese Route zu gehen. Es ist viel einfacher, eine COM-DLL zu haben, die Ihre Raw-DLL umschließt, wenn Sie mit VB kommunizieren. –
Nein, Declare ist einfacher als COM, wenn die Oberfläche der Schnittstelle klein ist. COM ist ein königlicher Schmerz in der Rückseite, besonders von C++. –