![]() |
Namensgebung in einer C++ dll
Guten Abend,
ich bin momentan dabei, eine in c++ geschriebene .dll in ein Delphi-Projekt einzubinden. Das ist auch nicht das erste mal und soweit kein Problem. Aber jetzt bin ich auf eine Funktion gestoßen, die ein Struct als Übergabeparameter erwartet. Eigentlich wäre das auch kein Problem, wenn das Objekt nicht folgenden enum enthalten würde:
Code:
Die Tatsache, dass der Enum "Procedure" heißt und das OR mittendrin findet Delphi ziemlich blöd.
typedef enum Procedure {
SRG, OR, NONOR, SRG_CONFLICT, OR_CONFLICT, NONOR_CONFLICT_CHOP_DATE }; Leider liegt mir der Quellcode der dll nicht vor (Sonst hätte ich den Kram auch einfach umbenannt...). Weiß da jemand eventuell Rat? Schoneinmal einen schönen Dank im Voraus. ;) |
AW: Namensgebung in einer C++ dll
Namen sind doch vollkommen egal ... es kommt nur auf die ordinalen Werte drauf an.
Du kannst die Namen also nach belieben umbenennen. Selbst Folgendes würde problemlos funktionieren. :angle:
Delphi-Quellcode:
Außerdem mußt du auf die Speichergröße achten und das ist der wichtigste Punkt.
{$MINENUMSIZE 4}
type a = (b, c, d, e, f, g); // oder type TMyProcedureEnum = type Integer; const mpSRG = TMyProcedureEnum(0); mpOR = TMyProcedureEnum(1); mpNONOR = TMyProcedureEnum(2); mpSrgConflict = TMyProcedureEnum(3); mpOrConflict = TMyProcedureEnum(4); mpNonOrConflictChopDate = TMyProcedureEnum(5); Denn C arbeitet gerne mit Registerbreiten, unter Win32 währe dieser Enum-Typ 4 Byte groß, während Delphi standardmäßig mit minimalem Speicher arbietet und diesen Enum in 1 Byte packen würde. 3 Byte blieben also undefiniert, was vorallem bei Übergabe an den C-Code (die DLL) probleme bereiten könnte, da die oberen 3 Byte undefiniert währen und Zufallswerte enthalten könnten.
Delphi-Quellcode:
{$Z4} oder {$MINENUMSIZE 4}
|
AW: Namensgebung in einer C++ dll
Je nach Version könntest du die Namen auch einfach mit einem
Delphi-Quellcode:
maskieren.
&
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:09 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