![]() |
AW: InterlockedIncrement in welcher Unit?
Außerdem:
Delphi-Quellcode:
aber dann:
interface
uses Windows, System.SyncObjs;
Delphi-Quellcode:
Entweder WinApi an beiden Stellen (empfohlen) oder an keiner.
{ Safely increment the counter. }
winapi.windows.InterlockedIncrement(GetMemCalls); //Bereits hier meckert der Compiler |
AW: InterlockedIncrement in welcher Unit?
Richtig, bei 10.3 war das ja noch in der System.SyncObjs. Wir sollten eine Delphi-PRAXis-History für Fragen zu den älteren Delphi-Versionen einführen. Zumindest gefühlt werden das ja immer mehr.
|
AW: InterlockedIncrement in welcher Unit?
Zitat:
Der Text in der Hilfe ist leider immer noch etwas irreführend, da dort steht dass sie für "mobile Delphi-Compiler" seien, was kompetter Unfug ist. Diese Routinen stehen für alle Platformen zur Verfügung und generieren den entsprechenden Binärcode. Edit: fwiw, ich hab das mal ![]() |
AW: InterlockedIncrement in welcher Unit?
Genau da meckert aber mein Compiler Delphi 11.3 Community Edition und genau das kann ich mir nicht erklären. Ich weiß neichet mehr was ich noch tun soll. Warum gibt es solche böden Fehler nur bei Mir?
Besser ich baue mir eine eigene Rotine dafür aber wie fange ich das an? Da zugehörige Projet ist im Delphi Pfad wie er installiert ist under dem Ordner Prokekte.Delphi legt ja dafür unter c:\Users\Konta\Documents\Embarcadero\Studio\Projek te\ meinen Pfad an und dort gibt es meinjen Unterordner für das Projekt. Für jedes Projekt ein Unterordner in /Projekte Warum findet der Compiler dann eine Unit nicht? Bin verzweifelt!:( |
AW: InterlockedIncrement in welcher Unit?
Danke @Stevie! AtomicIncrement ist die Lösung!:cheers:
Echt frustrierend wenn sich die Lokationen der Bezeichner auch noch von Version zu Verion ändern, da ist es kein Wunder, wenn/dass man irgendwann frustriert aufgibt, was als Hobby Programmierer ja geht. Wie aber soll der professionelle Programmierer einem Kunden erklären dass das Programm wegen solcher vermeidbaren Probleme so teuer ist???. Und es ist sinnlos vergeudete Arbeitszeit in der professionellen Programmierung, die der programmierende zu Recht anständig bezahlt haben will. |
AW: InterlockedIncrement in welcher Unit?
Zitat:
Delphi-Quellcode:
(man beachte das CLASS)
TInterlocked = class sealed
public class function Increment(var Target: Integer): Integer; overload; static; inline; class function Increment(var Target: Int64): Int64; overload; static; inline;
Delphi-Quellcode:
var MyVar: Integer;
AtomicIncrement(MyVar); // die System.pas ist immer eingebunden InterlockedIncrement(MyVar); // Winapi.Windows.pas TInterlocked.Increment(MyVar); // System.SyncObjs.pas |
AW: InterlockedIncrement in welcher Unit?
Zitat:
Zitat:
Zitat:
|
AW: InterlockedIncrement in welcher Unit?
Zitat:
Eigentlich war schon XE2 ziemlich über Windows hinweg :-D aber ja, XE3 war sicher stabiler und es gab noch eine Menge Änderungen ... :stupid: ![]() </KlugScheisserei> |
AW: InterlockedIncrement in welcher Unit?
Stimmt, außer OSX32 lief das allerdings über FPC und für OSX32 funktionierte noch der x86 asm Code, deshalb sah man zu diesem Zeitpunkt wohl noch nicht die Notwendigkeit für platformübergreifende Intrinsics.
Muss ich verdrängt haben 8-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:29 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