Einzelnen Beitrag anzeigen

Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: Pointer auf Record aus Funktion freigeben

  Alt 31. Aug 2006, 00:07
Ja, das sind Funktionen die einen Pointer auf einen Record als Parameter bekommen und diesen Record dann mit den Daten füllen, in der Import-Unit sieht das so aus:
Delphi-Quellcode:
//##############################################################################
//#
//# Function tsrGetSpeakers( IDs : PInteger; RecordCount: PInteger): Integer;
//#
//# Description:
//# Get ID list of people that are speaking now
//#
//# Input:
//# IDs: Buffer to hold atleast RecordCount Integers
//# RecordCount: How much Integers IDs can hold
//#
//# Output:
//# Result: 0 = OK, else the error number
//# if result = 0 then
//# IDs: Buffer to RecordCount* Ids of people who are talking
//# RecordCount: How Much people are talking
//#
//##############################################################################
Type TtsrGetSpeakers = Function ( IDs : PInteger; RecordCount: PInteger): Integer;
                 {$ifdef linux}cdecl;{$endif} {$ifdef mswindows}stdcall;{$endif}
var tsrGetSpeakers : TtsrGetSpeakers;
Const fn_tsrGetSpeakers='tsrGetSpeakers';
//##############################################################################
//#
//# Function tsrGetPlayerInfoByID( PlayerID: Integer;
//# tsrPlayerInfo : PtsrPlayerInfo): Integer;
//#
//# Description:
//# Get the Info on the player specified by PlayerID.
//#
//# Input:
//# PlayerID: The ID of the player you want the info from
//# tsrPlayerInfo: This is the pointer to a TtsrPlayerInfo record
//#
//# Output:
//# Result: 0 = OK, else the error number
//# if result = 0 then tsrPlayerInfo is filled with the player info.
//#
//##############################################################################
type TtsrGetPlayerInfoByID = Function ( PlayerID: Integer; tsrPlayerInfo : PtsrPlayerInfo): Integer;
                 {$ifdef linux}cdecl;{$endif} {$ifdef mswindows}stdcall;{$endif}
var tsrGetPlayerInfoByID : TtsrGetPlayerInfoByID;
Const fn_tsrGetPlayerInfoByID='tsrGetPlayerInfoByID';
So sieht der Records aus:
Delphi-Quellcode:
Type

  PtsrPlayerInfo = ^TtsrPlayerInfo;
  TtsrPlayerInfo = packed record
    PlayerID : Integer;
    ChannelID : Integer;
    NickName : Array [0..29] of Char;
    PlayerChannelPrivileges : Integer;
    PlayerPrivileges : Integer;
    PlayerFlags : Integer;
  end;
Zitat von Khabarakh:
Aber wie hast du es geschafft, dass dein Taskmanager einzelne Bytes anzeigt ... ?
Ach verdammt, das sind ja Kilobyte...peinlich
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat