![]() |
Delphi Funktion -> C++
Hallo Leute,
ich hab mir heute mal die Demo vom Borland C++-Builder geladen. Jetzt versuche ich gerade, folgende Funktion nach C++ zu übersetzten:
Delphi-Quellcode:
Das hier habe ich:
function Darken(Value: TColor; Percentage: Byte): TColor;
type PP = ^DWord; var Buffer: Array[0..3] of Byte; I: Integer; begin PP(@Buffer)^ := Value; for I:=0 to 2 do Buffer[I] := (Buffer[I] * Percentage) DIV 100; Result := PP(@Buffer)^; end;
Code:
Aber da kommen verschiedene Fehler, und leider habe ich keinen Ansatzpunkt. Kann mir da wer helfen?
TColor Darken(TColor Value, Byte Percentage) {
byte Buffer[3], i; (short)(Buffer) = (short)(Value); Buffer = &Value; for(i=0; i<3; i++) Buffer[i] = (Buffer[i] * Percentage) / 100; return Buffer; } Gruß, Moritz |
Re: Delphi Funktion -> C++
Das ist meine Übersetzung der Funktion:
Code:
TColor Darken(TColor value, BYTE percentage)
{ BYTE buffer[4]; *(TColor*)buffer = value; for(int i = 0; i < 4; i++) buffer[i] = (buffer[i] * percentage) / 100; return *(TColor*)buffer; } |
Re: Delphi Funktion -> C++
Vielen Dank! Ich hab nur noch ein Problem mit einer Zeile:
Code:
Was macht der Stern ganz am Anfang? :angel2:
*(TColor*)buffer = value;
|
Re: Delphi Funktion -> C++
also :
*(TColor*)buffer (TColor*) bewirkt , das buffer als ein Pointer zu TColor ist. Die Stern ganz links erlaubt dir, dass du das Wert von buffer "erfährst" , d.h. -> "(TColor*) buffer" ist ein Pointer, "*(TColor*)buffer" ist ein Wert an der Stelle von das Pointer zeigt. Pascal: var buffer : pointer; TColor( bufer^ ) |
Re: Delphi Funktion -> C++
Zitat:
Delphi-Quellcode:
PColor(buffer)^
|
Re: Delphi Funktion -> C++
Beide Funct prima :evil:
|
Re: Delphi Funktion -> C++
Zitat:
|
Re: Delphi Funktion -> C++
Vielen Dank!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 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