![]() |
AW: loadlibrary unter W10
Zitat:
Sicher, wenn du da vorher deinen Handle-Wert hineinpackst, wird der einfach überschrieben, deshalb merkst du das ohne es zu debuggen nicht. |
AW: loadlibrary unter W10
Ich habe hier - nur als Beispiel - zwei Funktionen
Delphi-Quellcode:
Wie schon geschrieben, wurde im Vorläuferprojekt immer das Handle an die Funktion übergeben.
function b_ADDIDATA_GetNumberOfDigitalInputs(dw_DeviceHandle : DWord; var w_NumberOfChannels : word) : byte; far; stdcall; external 'ADDIDATA.DLL';
function b_ADDIDATA_Read4DigitalInputs(dw_DeviceHandle : DWord; b_port : byte; var b_portValue : byte) : byte; far; stdcall; external 'ADDIDATA.DLL'; Die beiden Funktionen erwarten auch hier die Übergabe von dw_DeviceHandle, nicht als var, also nicht als Rückgabewert! In der Dokumentation steht z.B. <return value> = b_ADDIDATA_Read4DigitalInputs(DWORD dw_DeviceHandle, BYTE b_port : byte, PBYTE pb_portValue) Ich interpretiere PBYTE als Pointer auf ein Byte, daher VAR im Delphi. dw_DeviceHandle ist aber DWORD also kein VAR, also auch kein Rückgabewert. Warum ist es völlig gleichgültig, was ich da übergebe? Das Lesen der digitalen Eingänge funktioniert jerdenfalls, auch mit dw_DeviceHandle = 0. Die Antwort kann wahrscheinlich nur der Hersteller geben. |
AW: loadlibrary unter W10
DeviceHandle! Das Handle des Geräts und nicht das Handle der DLL. Die Funktion muss ja wissen von welchem Gerät du die Infos willst.
|
AW: loadlibrary unter W10
Zitat:
|
AW: loadlibrary unter W10
@jaeinicke
Der Aufruf von i_ADDIDATA_OpenWin32Driver liefert als Handle immer Null zurück. Die Aufrufe der anderen Funktionen, die das Handle benötigen, funktionieren aber, wenn ich dort diese Null eintrage. Ich hätte für ein Handle eigentlich einen Wert ungleich Null erwartet Mit Euren Hilfen und Anregungen habe ich jetzt die wichtigsten Dinge zum Laufen gebracht, frage mich aber immer noch, warum das Handle Null ist. |
AW: loadlibrary unter W10
Doku zu i_ADDIDATA_OpenWin32Driver
... -Output PDWORD pdw_DriverHandle Returns the driver handle. This parameter i the first to be called up for each function. Soweit so klar, trotzdem würde ich da keine Null erwarten. |
AW: loadlibrary unter W10
hab ich gemacht, kommt aber nur eine große Zahl als Fehlercode, die in keiner Liste steht.
Das ist auch nicht weiter verwunderlich, weil i_ADDIDATA_OpenWin32Driver mit Null ( = kein Fehler) zurückkommt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz