Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Eigene C++ DLL's in VBA benutzen

Meik / 2 Antworten / Flachansicht Nickles

Hallo!

Mit Begeisterung habe ich festgestellt, dass es möglich mit (V)C++ DLL-Dateien zu erstellen, auf deren Funktionen man dann mittles API mit VBA zugreifen kann. Das klappt bei mir zwar schon im Ansatz, leider scheitere ich aber im Moment daran, dass ich keine vernünftigen Werte-Übergaben machen kann. Als Beispiel:

Private Declare Function say_hello Lib "dll" (ByVal a As Integer) As Integer

Sub aMalFuenf()
Dim intc As Integer
intc = say_hello(5)
MsgBox intc
End Sub

Excel bringt die Fehlermeldung:

Laufzeitfehler \'49\': Falsche DLL-Aufrufkonvention
(mit Verweis auf die Zeile "intc = say_hello(5)"

Der entscheidende Abschnitt des C++-Quellcodes sieht so aus:

extern "C" __declspec(dllexport) int say_hello(int a)
{
int c;
c = a*5;
return(c);
}

Wenn mir jemand meinen Fehler zeigen oder mir ein vernünftiges Beispiel liefern könnte, an dem sich der Umgang mit DLL\'s studieren lässt, wäre ich sehr dankbar!

Gruß,
Meik

bei Antwort benachrichtigen
Meik Nachtrag zu: „Eigene C++ DLL's in VBA benutzen“
Optionen

Danke, aber leider war das nicht die Ursache meines Problems. Er erkennt die dll ja, weil diese in dem gleichen Verzeichnis wie die xl-Tabelle liegt. (Trotzdem habe ich das mit dem Umbenennen in "dll.dll" mal versucht).

Ich danke dir trotzdem um wünsche auch dir ein schönes neues Jahr!

Gruß,
Meik

bei Antwort benachrichtigen