"can't find DLL entry point" (BCB5-->6)
-
Hatte eine DLL mit Borland C++ Builder 5 erstellt und sie in eine Anwendung eingebunden. Wenn ich nun mit den selben sources files eine DLL mit BCB 6 bilde, bringt die Anwendung (VBA code) einen Run-time Error ('453' in VBA): can't find DLL entry point "...(Name der DLL-Funktion)" in Pfad so und so (correkter DLL-Pfad). Der Fehler kommt beim Aufrufen der DLL-Funktion in VBA. Die DLL-Funktion wurde in VBA (Anwendungsprogramm) auch deklariert und ist fuer die Weiterleitung von Daten, die in der Anwendung vorverarbeitet werden, zwischen VBA und der DLL zustaendig. In der DLL werden die Daten dann weiterverarbeitet und zum Schluss an die Anwendung ueber die DLL-Funktion wieder zurueckgegeben.
In VBA help steht folgende Beschreibung:
The dynamic-link library (DLL) in a user library reference was found, but the DLL function specified wasn't found within the DLL. This error has the following causes and solutions:
1. You specified an invalid ordinal in the function declaration.
Check for the proper ordinal or call the function by name.
2. You gave the right DLL name, but it isn't the version that contains the specified function.
You may have the correct version on your machine, but if the directory containing the wrong version precedes the directory containing the correct one in your path, the wrong DLL is accessed. Check your machine for different versions. If you have an early version, contact the supplier for a later version.
3. If you are working on a 32-bit Microsoft Windows platform, both the DLL name and alias (if used) must be correct.
Make sure the DLL name and alias are correct.
4. Some 32-bit DLLs contain functions with slightly different versions to accommodate both Unicode and ANSI strings. An "A" at the end of the function name specifies the ANSI version. A "W" at the end of the function name specifies the Unicode version.
If the function takes string-type arguments, try appending an "A" to the function name.Habe kontrolliert: --> Funktion ist in DLL vorhanden (ueber impdef.exe)
--> Es funktioniert alles mit BCBv5 DLL.
--> Funktion wurden als public deklariert in VBAWas koennte hier der Fehler sein? Koennte es sein, dass ich in VBA was aendern muss? Wenn die oben genannte Fehlermeldung kommt, heisst das, dass die Funktion nicht gelesen werden kann oder dass der Entry Point der DLL(allgemein) nicht gefunden wird? Wurde vielleicht was im Ablauf der DLL-Erstellung oder Compilierung veraendert zwischen BCB5 und BCB6?
Bin fuer jede Idee dankbar!
Gruss Marylin
-