![]() |
RasDialFunc2 mit neuer Delphi Version
Also es Funktioniert, ich möchte nur nachfragen was sich in Delphi am verhalten geändert hat.
Die Procedure hat so immer Funkioniert Delphi5,Delphi7,Delphi2010,DelphiXE4,DelphiXE8 Jetzt mit 11.x wird nur noch ein Event geliefert, das steht auch so bei MS hier: ![]() Also habe ich die procedure in eine function geändert, und es Funkioniert wieder.(mit allen Versionen) Jetzt ist nur die Frage warum das vorher immer Funktioniert hat, war vielleicht in den alten Versionen das Result mit Zufallswerten/alten Werten belegt, und jetzt immer mit "0" ? alt
Delphi-Quellcode:
neu
procedure RasDialFunc2 (dwCallBackId, dwSubEntry: DWORD; ConnHandle: HRASConn;
Msg: UINT; RasCS: integer; dwError, dwExtendedError: DWORD); stdcall; begin .. end;
Delphi-Quellcode:
function RasDialFunc2 (dwCallBackId, dwSubEntry: DWORD; ConnHandle: HRASConn;
Msg: UINT; RasCS: integer; dwError, dwExtendedError: DWORD): DWord; stdcall; begin ... Result := 1; end ; |
AW: RasDialFunc2 mit neuer Delphi Version
Es war einfach nur falsch implementiert.
* als Prozedur im Delphi * aber Windows erwartet eine Funktion Wenn am Prozedurende zufällig im EAX etwas ungleich 0 stand, dann entsprach es deinem neuen Result:=1, aber war zufällig EAX=0, dann wurde indirekt ein Result:=0 gemacht und peng |
AW: RasDialFunc2 mit neuer Delphi Version
die älteren Delphi haben EAX unverändert gelassen
die neueren Überschreiben das EAX mit "0" bei procedure |
AW: RasDialFunc2 mit neuer Delphi Version
Ahhhhhh...
auch EDX? OK, also im "Normalfall" eine zusätzlich (winzige) unnötige Operation und falls Prozedur statt Funktion, dann wenigstens mit definiertem Result (so lange das Result 32 Bit gewesen wäre) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:11 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