Seite 1 von 1

Minimum an DLLs?

Verfasst: So, 24. Aug 2014 15:31
von georg
Hallo,


ich versuche, für ein kleines Kommandozeilenprogramm mal die erforderlichen DLLs zu ermitteln. Das Programm verwendet keine DBEs, und folgende DLLs habe ich als erforderlich ermittelt:

ASCOM10.dll
ASRDBC10.dll
SOM.dll
XppNat.dll
XppRt1.dll
XppSys.dll
XppUi1.dll

Damit lässt sich das Programm starten. Als einziges "AddOn" verwende ich die TInit-Klasse von Phil, die eigentlich keine besonderen Laufzeitbibliotheken braucht. Das Programm bricht an dieser Anweisung ab:

Code: Alles auswählen

dllfunction GetPrivateProfileSectionA(ASection, @ABuffer, ALength, AFileName) using stdcall from "kernel32.dll"
Also fehlt wohl eine DLL, denn wenn ich meinen Pfad (in dem die Laufzeitbibliotheken liegen) wieder aktiviere, läuft es.

Hat einer eine Idee, was fehlt?

Re: Minimum an DLLs?

Verfasst: So, 24. Aug 2014 19:14
von Herbert
Laut MSDN
This function is provided only for compatibility with 16-bit applications written for Windows. Applications should store initialization information in the registry.
heisst, du rufst eine 16-bit Bibliothek auf. Sollte in Kernel32.dll aber vorhanden sein.

Re: Minimum an DLLs?

Verfasst: So, 24. Aug 2014 21:11
von georg
Hallo, Herbert -


mit den gelisteten DLLs gibt es die Fehlermeldung.

Setze ich alle Alaska-DLLs wieder in den Pfad und starte das Programm, gibt es keine Fehlermeldung, sondern es funktioniert einwandfrei.

Also kann es m.E. kein Problem sein, das mit dem Aufruf einer 16bit DLL zusammenhängt, da die (fehlende) DLL, die dazwischen hängt, in meiner Liste nicht vorhanden ist, aber laut Alaska Dokumentation habe ich alle erforderlichen DLLs.


Machen wir ein anderes Fass auf: es gibt einfach kleine Hilfsprogramme, für die will ich nichts in die Registry schreiben, da ist es einfacher, die Programme lesen ihre Informationen aus einer INI-Datei aus, die man schnell mit einem Editor anpassen kann. Enduser an die Registry dranlassen halte ich für eine fatale Fehlentscheidung. Ausserdem greift Phil auf eine Funktion in der kernel32.dll zu, und da würde ich 32bit Code drin vermuten.

Re: Minimum an DLLs?

Verfasst: So, 24. Aug 2014 23:10
von Herbert
Bin deiner Meinung, Georg
Gibts nur Trial and Error, indem du Lib um Lib wegnimmst...

Re: Minimum an DLLs?

Verfasst: Mo, 25. Aug 2014 2:45
von AUGE_OHR
georg hat geschrieben:ASCOM10.dll
ASRDBC10.dll[/code]
wenn du die ASCOM10.DLL nimmst solltest du auch die ASCOM10C.DLL mitliefern.
die ASRDBC10.dll ist doch für die Datenbank - Funktionalität ? siehe Help File "Xbase++Programme an Kunden ausliefern"

Re: Minimum an DLLs?

Verfasst: Mo, 25. Aug 2014 4:53
von georg
Guten Morgen,


Jimmy: Volltreffer. Die war's.

Und: obwohl ich nur eine leere DbeSys() verwende, verlangt die Laufzeitumgebung nach der ASRDB10.dll

Vielen Dank für's Feedback!