![]() |
CreateFiber Deklaration in der Windows.pas
Ich habe mich gerade mit Fiber beschäftigt um mein Threading Tutorial zu vervollständigen. Dabei bin ich auf etwas mir unverständliches gestossen.
Laut SDK ist CreateFiber wie folgt deklariert:
Code:
Es wird also ein Zeiger zurückgegeben, weil
LPVOID WINAPI CreateFiber(
SIZE_T dwStackSize, LPFIBER_START_ROUTINE lpStartAddress, LPVOID lpParameter ); Zitat:
Delphi-Quellcode:
Man achte auf den Rückgabetyp: BOOL.
function CreateFiber(dwStackSize: DWORD; lpStartAddress: TFNFiberStartRoutine;
lpParameter: Pointer): BOOL; stdcall; Jetzt frage ich mich, was soll das? Steckt da ein tieferer Sinn drin, dass Borland den Rückgabetyp geändert hat? Und dann noch in einen, für mich ziemlich unsinnigen. BOOL entspricht zwar LongBool, welches vier Byte groß ist und somit einen Zeiger beinhalten kann, aber um an den Zeiger dran zukommen ist ein Cast erforderlich. Also warum hat sich Borland hier für BOOL entschieden und nicht für Pointer? Letztendlich habe ich mir die nötigen Funktionen alle selber noch mal deklariert, damit die Dokumentation zum Quellcode passt. |
Re: CreateFiber Deklaration in der Windows.pas
![]() |
Re: CreateFiber Deklaration in der Windows.pas
Das ist für mich kein Bug, sondern unsauberes Arbeiten. Danke für die Info.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 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 by Thomas Breitkreuz