AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) CreateFiber Deklaration in der Windows.pas
Thema durchsuchen
Ansicht
Themen-Optionen

CreateFiber Deklaration in der Windows.pas

Ein Thema von Luckie · begonnen am 1. Apr 2008 · letzter Beitrag vom 1. Apr 2008
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

CreateFiber Deklaration in der Windows.pas

  Alt 1. Apr 2008, 09:52
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:
LPVOID WINAPI CreateFiber(
  SIZE_T dwStackSize,
  LPFIBER_START_ROUTINE lpStartAddress,
  LPVOID lpParameter
);
Es wird also ein Zeiger zurückgegeben, weil
Zitat:
If the function succeeds, the return value is the address of the fiber.
Als ich eine Demo schreiben wollte, hat mich Delphi immer mit Fehlermeldungen zugeschmissen, weil die Typen angeblich nicht zusammenpassen würden. Nach einem Blick in die Windows.pas wurde mir auch klar warum:
Delphi-Quellcode:
function CreateFiber(dwStackSize: DWORD; lpStartAddress: TFNFiberStartRoutine;
  lpParameter: Pointer): BOOL; stdcall;
Man achte auf den Rückgabetyp: BOOL.

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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
teebee

Registriert seit: 17. Jan 2003
Ort: Köln
460 Beiträge
 
Delphi 6 Professional
 
#2

Re: CreateFiber Deklaration in der Windows.pas

  Alt 1. Apr 2008, 10:15
Ist ein Bug, ab D2005 gefixt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: CreateFiber Deklaration in der Windows.pas

  Alt 1. Apr 2008, 10:21
Das ist für mich kein Bug, sondern unsauberes Arbeiten. Danke für die Info.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz