Moin Berbog,
zum einen schreibst Du
Zitat:
Dll Funktion analog1 wird ausgelesen und als Wert angezeigt
zum anderen deklarierst Du eine Varible mit dem Namen analog1.
Hast Du jetzt also eine Variable und eine Funktion mit gleichem Namen?
Dann wäre noch die Frage was die Dokumentation für die
DLL Funktion über die zu übergebenden Parameter aussagt.
Eine Meldung
"4|" ist kein gültiger Integerwert
weist eigentlich darauf hin, dass analog1 ins Nirwana zeigt und keinen definierten Wert enthält.
Um zumindest vor Aufruf der Funktion zu wissen, was analog1 enthält solltest Du den Speicher ggf. mit AllocMem reservieren, oder aber mit FillChar/ZeroMemory auf binär 0 initialisieren (Achtung, bei AllocMem muss vermutlich ein Byte mehr reserviert werden als gedacht, um Platz für die terminierende 0 zu haben)
@DerKapitalist
Zitat von
DerKapitalist:
Bei Übergabe von PChars erhaellst du naemlich keine Kopie der Daten sondern das Original.
Das dürfte wohl von der aufgerufenen Funktion abhängen.
Wenn der, wie zumindest in der Windows
API meist üblich, ein Pointer auf einen Buffer übergeben werden soll, in den die Funktion ihr Ergebnis schreiben soll, wird es wohl eher eine Kopie sein.